1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 11:54:57 +00:00

LibGUI: Implement automatic scrolling in AbstractView

This adds automatic scrolling when dragging items in TreeViews and other
widgets that inherit from AbstractView when the overloaded
accepts_drag() returns true. This is implemented in FileSystemModel to
allow directories and files to be dragged.
This commit is contained in:
Marcus Nilsson 2021-09-19 21:31:19 +02:00 committed by Andreas Kling
parent 53cfc6ec9f
commit d660e86d13
6 changed files with 45 additions and 7 deletions

View file

@ -460,4 +460,14 @@ bool AbstractTableView::is_navigation(GUI::KeyEvent& event)
return false;
}
}
Gfx::IntPoint AbstractTableView::automatic_scroll_delta_from_position(const Gfx::IntPoint& pos) const
{
if (pos.y() > column_header().height() + autoscroll_threshold())
return AbstractScrollableWidget::automatic_scroll_delta_from_position(pos);
Gfx::IntPoint position_excluding_header = { pos.x(), pos.y() - column_header().height() };
return AbstractScrollableWidget::automatic_scroll_delta_from_position(position_excluding_header);
}
}