summaryrefslogtreecommitdiffstats
path: root/src/select-context.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/select-context.cpp')
-rw-r--r--src/select-context.cpp24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/select-context.cpp b/src/select-context.cpp
index f0972acc8..2eff4297f 100644
--- a/src/select-context.cpp
+++ b/src/select-context.cpp
@@ -805,7 +805,9 @@ sp_select_context_root_handler(SPEventContext *event_context, GdkEvent *event)
break;
case GDK_bracketleft:
if (MOD__ALT) {
- sp_selection_rotate_screen(selection, 1);
+ gint mul = 1 + gobble_key_events(
+ get_group0_keyval(&event->key), 0); // with any mask
+ sp_selection_rotate_screen(selection, mul*1);
} else if (MOD__CTRL) {
sp_selection_rotate(selection, 90);
} else if (snaps) {
@@ -815,7 +817,9 @@ sp_select_context_root_handler(SPEventContext *event_context, GdkEvent *event)
break;
case GDK_bracketright:
if (MOD__ALT) {
- sp_selection_rotate_screen(selection, -1);
+ gint mul = 1 + gobble_key_events(
+ get_group0_keyval(&event->key), 0); // with any mask
+ sp_selection_rotate_screen(selection, -1*mul);
} else if (MOD__CTRL) {
sp_selection_rotate(selection, -90);
} else if (snaps) {
@@ -826,22 +830,30 @@ sp_select_context_root_handler(SPEventContext *event_context, GdkEvent *event)
case GDK_less:
case GDK_comma:
if (MOD__ALT) {
- sp_selection_scale_screen(selection, -2);
+ gint mul = 1 + gobble_key_events(
+ get_group0_keyval(&event->key), 0); // with any mask
+ sp_selection_scale_screen(selection, -2*mul);
} else if (MOD__CTRL) {
sp_selection_scale_times(selection, 0.5);
} else {
- sp_selection_scale(selection, -offset);
+ gint mul = 1 + gobble_key_events(
+ get_group0_keyval(&event->key), 0); // with any mask
+ sp_selection_scale(selection, -offset*mul);
}
ret = TRUE;
break;
case GDK_greater:
case GDK_period:
if (MOD__ALT) {
- sp_selection_scale_screen(selection, 2);
+ gint mul = 1 + gobble_key_events(
+ get_group0_keyval(&event->key), 0); // with any mask
+ sp_selection_scale_screen(selection, 2*mul);
} else if (MOD__CTRL) {
sp_selection_scale_times(selection, 2);
} else {
- sp_selection_scale(selection, offset);
+ gint mul = 1 + gobble_key_events(
+ get_group0_keyval(&event->key), 0); // with any mask
+ sp_selection_scale(selection, offset*mul);
}
ret = TRUE;
break;