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();
|
let rotation_gesture = gtk::GestureRotate::new();
|
||||||
obj.add_controller(&rotation_gesture);
|
obj.add_controller(&rotation_gesture);
|
||||||
|
|
||||||
rotation_gesture.connect_angle_changed(glib::clone!(@weak obj => move |_, angle, _| {
|
rotation_gesture.connect_angle_changed(
|
||||||
|
glib::clone!(@weak obj => move |gesture, _, _| {
|
||||||
|
let angle = gesture.angle_delta();
|
||||||
// offset for rotate gesture to take effect
|
// offset for rotate gesture to take effect
|
||||||
if angle.abs().to_degrees() > 20. {
|
if angle.abs().to_degrees() > 20. {
|
||||||
obj.set_rotation(obj.imp().rotation_target.get() + angle.to_degrees());
|
obj.set_rotation(obj.imp().rotation_target.get() + angle.to_degrees());
|
||||||
}
|
}
|
||||||
}));
|
}),
|
||||||
|
);
|
||||||
|
|
||||||
rotation_gesture.connect_end(glib::clone!(@weak obj => move |_, _| {
|
rotation_gesture.connect_end(glib::clone!(@weak obj => move |_, _| {
|
||||||
log::debug!("Rotate gesture ended");
|
log::debug!("Rotate gesture ended");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue