diff --git a/Userland/Libraries/LibGUI/TabWidget.cpp b/Userland/Libraries/LibGUI/TabWidget.cpp index e9499542ad..76d6d577b0 100644 --- a/Userland/Libraries/LibGUI/TabWidget.cpp +++ b/Userland/Libraries/LibGUI/TabWidget.cpp @@ -635,6 +635,18 @@ void TabWidget::context_menu_event(ContextMenuEvent& context_menu_event) } } +void TabWidget::doubleclick_event(MouseEvent&) +{ + for (auto& tab : m_tabs) { + if (auto* widget = tab.widget) { + deferred_invoke([this, widget] { + if (on_double_click) + on_double_click(*widget); + }); + } + } +} + void TabWidget::set_container_margins(GUI::Margins const& margins) { m_container_margins = margins; diff --git a/Userland/Libraries/LibGUI/TabWidget.h b/Userland/Libraries/LibGUI/TabWidget.h index 2addcc729b..d3d4977f6c 100644 --- a/Userland/Libraries/LibGUI/TabWidget.h +++ b/Userland/Libraries/LibGUI/TabWidget.h @@ -86,6 +86,7 @@ public: Function on_middle_click; Function on_tab_close_click; Function on_context_menu_request; + Function on_double_click; protected: TabWidget(); @@ -99,6 +100,7 @@ protected: virtual void leave_event(Core::Event&) override; virtual void keydown_event(KeyEvent&) override; virtual void context_menu_event(ContextMenuEvent&) override; + virtual void doubleclick_event(MouseEvent&) override; private: Gfx::IntRect child_rect_for_size(const Gfx::IntSize&) const;