From f1a12425e0b2e47be068fbc902618567d40a58fd Mon Sep 17 00:00:00 2001 From: Ian Douglas Scott Date: Tue, 28 Jan 2025 11:50:44 -0800 Subject: [PATCH] mouse_area: Fix `on_drag` behavior without `on_release` Mouse/touch release events should end the drag even if there's not an `on_release` callback. This was causing https://github.com/pop-os/cosmic-comp/issues/1071. --- widget/src/mouse_area.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/widget/src/mouse_area.rs b/widget/src/mouse_area.rs index 1ce5001858..6e894c618b 100644 --- a/widget/src/mouse_area.rs +++ b/widget/src/mouse_area.rs @@ -506,11 +506,11 @@ fn update( } } - if let Some(message) = widget.on_release.as_ref() { - if let Event::Mouse(mouse::Event::ButtonReleased(mouse::Button::Left)) - | Event::Touch(touch::Event::FingerLifted { .. }) = event - { - state.drag_initiated = None; + if let Event::Mouse(mouse::Event::ButtonReleased(mouse::Button::Left)) + | Event::Touch(touch::Event::FingerLifted { .. }) = event + { + state.drag_initiated = None; + if let Some(message) = widget.on_release.as_ref() { shell.publish(message.clone()); return event::Status::Captured;