mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 18:07:34 +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);
|
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);
|
window()->set_override_cursor(StandardCursor::None);
|
||||||
set_hovered_header_index(-1);
|
set_hovered_header_index(-1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -193,16 +193,27 @@ void AbstractView::mousedown_event(MouseEvent& event)
|
||||||
update();
|
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)
|
void AbstractView::mousemove_event(MouseEvent& event)
|
||||||
{
|
{
|
||||||
if (!model())
|
if (!model())
|
||||||
return ScrollableWidget::mousemove_event(event);
|
return ScrollableWidget::mousemove_event(event);
|
||||||
|
|
||||||
auto hovered_index = index_at_event_position(event.position());
|
auto hovered_index = index_at_event_position(event.position());
|
||||||
if (m_hovered_index != hovered_index) {
|
set_hovered_index(hovered_index);
|
||||||
m_hovered_index = hovered_index;
|
|
||||||
update();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!m_might_drag)
|
if (!m_might_drag)
|
||||||
return ScrollableWidget::mousemove_event(event);
|
return ScrollableWidget::mousemove_event(event);
|
||||||
|
|
|
@ -82,8 +82,10 @@ protected:
|
||||||
virtual void doubleclick_event(MouseEvent&) override;
|
virtual void doubleclick_event(MouseEvent&) override;
|
||||||
virtual void context_menu_event(ContextMenuEvent&) override;
|
virtual void context_menu_event(ContextMenuEvent&) override;
|
||||||
virtual void drop_event(DropEvent&) override;
|
virtual void drop_event(DropEvent&) override;
|
||||||
|
virtual void leave_event(Core::Event&) override;
|
||||||
|
|
||||||
virtual void did_scroll() override;
|
virtual void did_scroll() override;
|
||||||
|
void set_hovered_index(const ModelIndex&);
|
||||||
void activate(const ModelIndex&);
|
void activate(const ModelIndex&);
|
||||||
void activate_selected();
|
void activate_selected();
|
||||||
void update_edit_widget_position();
|
void update_edit_widget_position();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue