diff --git a/src/widgets/image.rs b/src/widgets/image.rs index 04bb93d9b3637921d8cb1462d723381438cf7983..748ca7289e4b2af4d087359839b9d756ad6cbab1 100644 --- a/src/widgets/image.rs +++ b/src/widgets/image.rs @@ -380,12 +380,15 @@ mod imp { let rotation_gesture = gtk::GestureRotate::new(); obj.add_controller(&rotation_gesture); - rotation_gesture.connect_angle_changed(glib::clone!(@weak obj => move |_, angle, _| { - // offset for rotate gesture to take effect - if angle.abs().to_degrees() > 20. { - obj.set_rotation(obj.imp().rotation_target.get() + angle.to_degrees()); - } - })); + rotation_gesture.connect_angle_changed( + glib::clone!(@weak obj => move |gesture, _, _| { + let angle = gesture.angle_delta(); + // offset for rotate gesture to take effect + if angle.abs().to_degrees() > 20. { + obj.set_rotation(obj.imp().rotation_target.get() + angle.to_degrees()); + } + }), + ); rotation_gesture.connect_end(glib::clone!(@weak obj => move |_, _| { log::debug!("Rotate gesture ended");