From 82d6e606fc35e4bc0b50afcb774c8cbd55faf5aa Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Fri, 27 May 2022 11:43:58 +0200 Subject: [PATCH] Use a `MouseEventHandler` for activating tabs on mouse down Previously, we were using an `EventHandler` which doesn't take into account other mouse regions floating above the rendered element. This was problematic because, when clicking the `x` icon on a tab that was not active, we were first activating it and then closing it. --- crates/workspace/src/pane.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/crates/workspace/src/pane.rs b/crates/workspace/src/pane.rs index ba2a21bce4cad4e0ada71ef312366afe7e0f555e..db157ed8503ef619b202c21de86f12e52da13047 100644 --- a/crates/workspace/src/pane.rs +++ b/crates/workspace/src/pane.rs @@ -689,6 +689,7 @@ impl Pane { let theme = cx.global::().theme.clone(); enum Tabs {} + enum Tab {} let pane = cx.handle(); let tabs = MouseEventHandler::new::(0, cx, |mouse_state, cx| { let autoscroll = if mem::take(&mut self.autoscroll) { @@ -717,7 +718,7 @@ impl Pane { style.container.border.left = false; } - EventHandler::new( + MouseEventHandler::new::(ix, cx, |_, cx| { Container::new( Flex::row() .with_child( @@ -807,11 +808,10 @@ impl Pane { .boxed(), ) .with_style(style.container) - .boxed(), - ) - .on_mouse_down(move |cx| { + .boxed() + }) + .on_mouse_down(move |_, cx| { cx.dispatch_action(ActivateItem(ix)); - true }) .boxed() })