From 8e8751d41a1db945840285b51f06dee3fafa9fa2 Mon Sep 17 00:00:00 2001 From: Sophie Herold Date: Mon, 18 Nov 2024 14:47:21 +0100 Subject: [PATCH] inputHandling: Claim double-click gesture --- src/widgets/image/input_handling.rs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/widgets/image/input_handling.rs b/src/widgets/image/input_handling.rs index 472964c..0e1482f 100644 --- a/src/widgets/image/input_handling.rs +++ b/src/widgets/image/input_handling.rs @@ -142,9 +142,14 @@ impl imp::LpImage { move |gesture, n_press, x, y| { // only handle double clicks if n_press != 2 { + log::trace!("Gesture {n_press} click"); + gesture.set_state(gtk::EventSequenceState::Denied); return; } + log::trace!("Gesture double click"); + + gesture.set_state(gtk::EventSequenceState::Claimed); if gesture.device().map(|x| x.source()) == Some(gdk::InputSource::Touchscreen) { // zoom obj.imp().pointer_position.set(Some((x, y))); @@ -170,6 +175,7 @@ impl imp::LpImage { #[weak] obj, move |gesture, _, _| { + log::trace!("Drag gesture begin"); let imp = obj.imp(); // Allow only left and middle button @@ -210,6 +216,7 @@ impl imp::LpImage { #[weak] obj, move |_, _, _| { + log::trace!("Drag gesture end"); obj.set_cursor(None); obj.imp().last_drag_value.set(None); } @@ -222,7 +229,10 @@ impl imp::LpImage { rotation_gesture.connect_begin(glib::clone!( #[weak] obj, - move |_, _| obj.imp().cancel_deceleration() + move |_, _| { + log::trace!("Rotate gesture begin"); + obj.imp().cancel_deceleration(); + } )); rotation_gesture.connect_angle_changed(glib::clone!( @@ -260,7 +270,7 @@ impl imp::LpImage { #[weak] obj, move |_, _| { - log::debug!("Rotate gesture ended"); + log::debug!("Rotate gesture end"); let angle = (obj.rotation() / 90.).round() * 90. - obj.imp().rotation_target.get(); obj.rotate_by(angle); @@ -276,6 +286,8 @@ impl imp::LpImage { #[weak] obj, move |gesture, _| { + log::trace!("Zoom gesture begin"); + let imp = obj.imp(); imp.cancel_deceleration(); imp.zoom_gesture_center.set(gesture.bounding_box_center()); @@ -324,7 +336,7 @@ impl imp::LpImage { obj, move |_, _| { let imp = obj.imp(); - log::debug!("Zoom gesture ended"); + log::debug!("Zoom gesture end"); let rotation_target = (obj.rotation() / 90.).round() * 90.; if obj.zoom() < imp.zoom_level_best_fit_for_rotation(rotation_target) {