From 75b8a12ab37a21189aa28adbae2cec3412d07134 Mon Sep 17 00:00:00 2001 From: Kay Simmons Date: Fri, 18 Nov 2022 13:04:27 -0800 Subject: [PATCH] address issue where mouse down events weren't getting captured after the multiple handlers change --- crates/gpui/src/presenter.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/crates/gpui/src/presenter.rs b/crates/gpui/src/presenter.rs index c988bb330be665b0b2845545fc7808953a7d8284..d15051ef126677d516a9986de5e64ee5237b5dcc 100644 --- a/crates/gpui/src/presenter.rs +++ b/crates/gpui/src/presenter.rs @@ -485,7 +485,7 @@ impl Presenter { } // `event_consumed` should only be true if there are any handlers for this event. - let mut event_consumed = false; + let mut event_consumed = event_cx.handled; if let Some(callbacks) = valid_region.handlers.get(&mouse_event.handler_key()) { event_consumed = true; for callback in callbacks { @@ -499,6 +499,8 @@ impl Presenter { } } + any_event_handled |= event_cx.handled; + // For bubbling events, if the event was handled, don't continue dispatching. // This only makes sense for local events which return false from is_capturable. if event_consumed && mouse_event.is_capturable() {