From dc3dc4a9eca9f7657a1a537b98edf0b3148c1db2 Mon Sep 17 00:00:00 2001 From: Jason Lee Date: Mon, 23 Sep 2024 14:32:16 +0800 Subject: [PATCH] table: Avoid Table handle mouse wheel event, when it is blocked by some other element like Modal. (#261) --- crates/ui/src/scroll/scrollable_mask.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crates/ui/src/scroll/scrollable_mask.rs b/crates/ui/src/scroll/scrollable_mask.rs index 5604603d..2320279a 100644 --- a/crates/ui/src/scroll/scrollable_mask.rs +++ b/crates/ui/src/scroll/scrollable_mask.rs @@ -123,14 +123,15 @@ impl Element for ScrollableMask { } cx.on_mouse_event({ + let hitbox = hitbox.clone(); let mouse_position = cx.mouse_position(); let scroll_handle = self.scroll_handle.clone(); let old_offset = scroll_handle.offset(); let view_id = self.view.entity_id(); let is_horizontal = self.axis == ScrollableAxis::Horizontal; - move |event: &ScrollWheelEvent, _, cx| { - if bounds.contains(&mouse_position) { + move |event: &ScrollWheelEvent, phase, cx| { + if bounds.contains(&mouse_position) && phase.bubble() && hitbox.is_hovered(cx) { let delta = event.delta.pixel_delta(line_height); if is_horizontal && !delta.x.is_zero() {