image: Fix rotation gesture on touchscreens
Use angle-delta instead of total angle. Total angle is absolute on touchscreens.
This commit is contained in:
parent
f87a1b7131
commit
9c51dea6d1
1 changed files with 9 additions and 6 deletions
|
|
@ -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");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue