mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-01-06 08:36:15 +00:00
LibGUI/TabWidget: Make sure we don't act on two mouseup events
Make sure that even if we get two mouseup events, we do not try to remove the same widget twice.
This commit is contained in:
committed by
Andreas Kling
parent
12f3aa9faa
commit
54852832b1
@@ -358,20 +358,19 @@ void TabWidget::mouseup_event(MouseEvent& event)
|
||||
if (event.button() != MouseButton::Left)
|
||||
return;
|
||||
|
||||
if (!m_close_button_enabled)
|
||||
if (!m_close_button_enabled || m_pressed_close_button_index == -1)
|
||||
return;
|
||||
|
||||
for (size_t i = 0; i < m_tabs.size(); ++i) {
|
||||
auto close_button_rect = this->close_button_rect(i);
|
||||
if (close_button_rect.contains(event.position())) {
|
||||
auto* widget = m_tabs[i].widget;
|
||||
deferred_invoke([this, widget](auto&) {
|
||||
if (on_tab_close_click && widget)
|
||||
on_tab_close_click(*widget);
|
||||
});
|
||||
m_pressed_close_button_index = -1;
|
||||
return;
|
||||
}
|
||||
auto close_button_rect = this->close_button_rect(m_pressed_close_button_index);
|
||||
|
||||
if (close_button_rect.contains(event.position())) {
|
||||
auto* widget = m_tabs[m_pressed_close_button_index].widget;
|
||||
deferred_invoke([this, widget](auto&) {
|
||||
if (on_tab_close_click && widget)
|
||||
on_tab_close_click(*widget);
|
||||
});
|
||||
m_pressed_close_button_index = -1;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user