X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fui%2Fwidget%2Frotateable.cpp;h=8615df7a97064865933626a9d38b95e6f0fdbd8a;hb=fd5c8954a92eac9af9af21d2a3665e9c673203a2;hp=9941c10f8f46257c10f3ee5465448a29904df4b4;hpb=842291a21b9edb5c6689e934caf41edb638494ee;p=inkscape.git diff --git a/src/ui/widget/rotateable.cpp b/src/ui/widget/rotateable.cpp index 9941c10f8..8615df7a9 100644 --- a/src/ui/widget/rotateable.cpp +++ b/src/ui/widget/rotateable.cpp @@ -50,25 +50,35 @@ bool Rotateable::on_click(GdkEventButton *event) { guint Rotateable::get_single_modifier(guint old, guint state) { - if (old == 0) { + if (old == 0 || old == 3) { if (state & GDK_CONTROL_MASK) return 1; // ctrl if (state & GDK_SHIFT_MASK) return 2; // shift + if (state & GDK_MOD1_MASK) + return 3; // alt return 0; } else { - if (!(state & GDK_CONTROL_MASK) && !(state & GDK_SHIFT_MASK)) - return 0; // none - if (old == 1) + if (!(state & GDK_CONTROL_MASK) && !(state & GDK_SHIFT_MASK)) { + if (state & GDK_MOD1_MASK) + return 3; // alt + else + return 0; // none + } + if (old == 1) { if (state & GDK_SHIFT_MASK && !(state & GDK_CONTROL_MASK)) return 2; // shift - else - return 1; - if (old == 2) + if (state & GDK_MOD1_MASK && !(state & GDK_CONTROL_MASK)) + return 3; // alt + return 1; + } + if (old == 2) { if (state & GDK_CONTROL_MASK && !(state & GDK_SHIFT_MASK)) return 1; // ctrl - else - return 2; + if (state & GDK_MOD1_MASK && !(state & GDK_SHIFT_MASK)) + return 3; // alt + return 2; + } return old; } } @@ -107,11 +117,13 @@ bool Rotateable::on_release(GdkEventButton *event) { if (fabs(force) < 0.002) force = 0; // snap to zero do_release(force, modifier); + current_axis = axis; dragging = false; working = false; - current_axis = axis; return true; } + dragging = false; + working = false; return false; }