From f26548395e919c69e6332952672f0633aa9f33df Mon Sep 17 00:00:00 2001 From: Tommy Nguyen Date: Thu, 12 Dec 2019 04:48:49 -0500 Subject: [PATCH] LibGUI: Add context_menu_event to GTreeView --- Libraries/LibGUI/GTreeView.cpp | 14 ++++++++++++++ Libraries/LibGUI/GTreeView.h | 1 + 2 files changed, 15 insertions(+) diff --git a/Libraries/LibGUI/GTreeView.cpp b/Libraries/LibGUI/GTreeView.cpp index c363a9ea28..a73b02f9e2 100644 --- a/Libraries/LibGUI/GTreeView.cpp +++ b/Libraries/LibGUI/GTreeView.cpp @@ -334,3 +334,17 @@ void GTreeView::keydown_event(GKeyEvent& event) return; } } + +void GTreeView::context_menu_event(GContextMenuEvent& event) +{ + if (!model()) + return; + auto adjusted_position = event.position().translated(horizontal_scrollbar().value() - frame_thickness(), vertical_scrollbar().value() - frame_thickness()); + bool is_toggle; + auto index = index_at_content_position(adjusted_position, is_toggle); + if (index.is_valid()) { + if (on_context_menu_request) + on_context_menu_request(index, event); + } + GAbstractView::context_menu_event(event); +} diff --git a/Libraries/LibGUI/GTreeView.h b/Libraries/LibGUI/GTreeView.h index ece094a3a6..a8c19578b0 100644 --- a/Libraries/LibGUI/GTreeView.h +++ b/Libraries/LibGUI/GTreeView.h @@ -18,6 +18,7 @@ protected: virtual void keydown_event(GKeyEvent&) override; virtual void did_update_selection() override; virtual void did_update_model() override; + virtual void context_menu_event(GContextMenuEvent&) override; private: GModelIndex index_at_content_position(const Point&, bool& is_toggle) const;