diff --git a/Libraries/LibGUI/AbstractView.cpp b/Libraries/LibGUI/AbstractView.cpp index 8f91294f7d..33b542d109 100644 --- a/Libraries/LibGUI/AbstractView.cpp +++ b/Libraries/LibGUI/AbstractView.cpp @@ -678,4 +678,12 @@ void AbstractView::draw_item_text(Gfx::Painter& painter, const ModelIndex& index } } +void AbstractView::focusin_event(FocusEvent& event) +{ + ScrollableWidget::focusin_event(event); + + if (model() && !cursor_index().is_valid()) + move_cursor(CursorMovement::Home, SelectionUpdate::None); +} + } diff --git a/Libraries/LibGUI/AbstractView.h b/Libraries/LibGUI/AbstractView.h index 5c3dbefb8a..7e6fbabd47 100644 --- a/Libraries/LibGUI/AbstractView.h +++ b/Libraries/LibGUI/AbstractView.h @@ -137,6 +137,7 @@ protected: virtual void drop_event(DropEvent&) override; virtual void leave_event(Core::Event&) override; virtual void hide_event(HideEvent&) override; + virtual void focusin_event(FocusEvent&) override; virtual void clear_selection(); virtual void set_selection(const ModelIndex&);