mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 20:27:45 +00:00
LibGUI: Clear any hovered index when the cursor leaves an AbstractView
This commit is contained in:
parent
c26bef0e53
commit
031d242e0e
3 changed files with 19 additions and 5 deletions
|
@ -534,8 +534,9 @@ void AbstractTableView::context_menu_event(ContextMenuEvent& event)
|
|||
on_context_menu_request(index, event);
|
||||
}
|
||||
|
||||
void AbstractTableView::leave_event(Core::Event&)
|
||||
void AbstractTableView::leave_event(Core::Event& event)
|
||||
{
|
||||
AbstractView::leave_event(event);
|
||||
window()->set_override_cursor(StandardCursor::None);
|
||||
set_hovered_header_index(-1);
|
||||
}
|
||||
|
|
|
@ -193,16 +193,27 @@ void AbstractView::mousedown_event(MouseEvent& event)
|
|||
update();
|
||||
}
|
||||
|
||||
void AbstractView::set_hovered_index(const ModelIndex& index)
|
||||
{
|
||||
if (m_hovered_index == index)
|
||||
return;
|
||||
m_hovered_index = index;
|
||||
update();
|
||||
}
|
||||
|
||||
void AbstractView::leave_event(Core::Event& event)
|
||||
{
|
||||
ScrollableWidget::leave_event(event);
|
||||
set_hovered_index({});
|
||||
}
|
||||
|
||||
void AbstractView::mousemove_event(MouseEvent& event)
|
||||
{
|
||||
if (!model())
|
||||
return ScrollableWidget::mousemove_event(event);
|
||||
|
||||
auto hovered_index = index_at_event_position(event.position());
|
||||
if (m_hovered_index != hovered_index) {
|
||||
m_hovered_index = hovered_index;
|
||||
update();
|
||||
}
|
||||
set_hovered_index(hovered_index);
|
||||
|
||||
if (!m_might_drag)
|
||||
return ScrollableWidget::mousemove_event(event);
|
||||
|
|
|
@ -82,8 +82,10 @@ protected:
|
|||
virtual void doubleclick_event(MouseEvent&) override;
|
||||
virtual void context_menu_event(ContextMenuEvent&) override;
|
||||
virtual void drop_event(DropEvent&) override;
|
||||
virtual void leave_event(Core::Event&) override;
|
||||
|
||||
virtual void did_scroll() override;
|
||||
void set_hovered_index(const ModelIndex&);
|
||||
void activate(const ModelIndex&);
|
||||
void activate_selected();
|
||||
void update_edit_widget_position();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue