1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-24 22:27:42 +00:00

LibGUI: Add hook when a tab is middle clicked

This commit is contained in:
FalseHonesty 2020-05-06 23:03:03 -04:00 committed by Andreas Kling
parent cbbfc08f1d
commit bb6258229a
2 changed files with 10 additions and 1 deletions

View file

@ -236,7 +236,15 @@ void TabWidget::mousedown_event(MouseEvent& event)
auto button_rect = this->button_rect(i); auto button_rect = this->button_rect(i);
if (!button_rect.contains(event.position())) if (!button_rect.contains(event.position()))
continue; continue;
set_active_widget(m_tabs[i].widget); if (event.button() == MouseButton::Left) {
set_active_widget(m_tabs[i].widget);
} else if (event.button() == MouseButton::Middle) {
auto* widget = m_tabs[i].widget;
deferred_invoke([this, widget](auto&) {
if (on_middle_click && widget)
on_middle_click(*widget);
});
}
return; return;
} }
} }

View file

@ -80,6 +80,7 @@ public:
int uniform_tab_width() const; int uniform_tab_width() const;
Function<void(Widget&)> on_change; Function<void(Widget&)> on_change;
Function<void(Widget&)> on_middle_click;
protected: protected:
TabWidget(); TabWidget();