From d8553a64064cdd67da826905b904c9a2c4e27bf5 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Thu, 24 Sep 2020 21:14:14 +0200 Subject: [PATCH] LibGUI: Stop editing in views when the view is hidden This fixes an issue in FileManager where an editor opened in the table view mode would remain open after switching to the icon mode. --- Libraries/LibGUI/AbstractView.cpp | 6 ++++++ Libraries/LibGUI/AbstractView.h | 1 + 2 files changed, 7 insertions(+) diff --git a/Libraries/LibGUI/AbstractView.cpp b/Libraries/LibGUI/AbstractView.cpp index 00829c94d3..73a54d3d46 100644 --- a/Libraries/LibGUI/AbstractView.cpp +++ b/Libraries/LibGUI/AbstractView.cpp @@ -445,6 +445,12 @@ void AbstractView::set_edit_triggers(unsigned triggers) m_edit_triggers = triggers; } +void AbstractView::hide_event(HideEvent& event) +{ + stop_editing(); + ScrollableWidget::hide_event(event); +} + void AbstractView::keydown_event(KeyEvent& event) { if (event.key() == KeyCode::Key_F2) { diff --git a/Libraries/LibGUI/AbstractView.h b/Libraries/LibGUI/AbstractView.h index 2fe2d8d936..c409ca456d 100644 --- a/Libraries/LibGUI/AbstractView.h +++ b/Libraries/LibGUI/AbstractView.h @@ -129,6 +129,7 @@ protected: virtual void context_menu_event(ContextMenuEvent&) override; virtual void drop_event(DropEvent&) override; virtual void leave_event(Core::Event&) override; + virtual void hide_event(HideEvent&) override; virtual void clear_selection(); virtual void set_selection(const ModelIndex&);