summaryrefslogtreecommitdiffstats
path: root/src/display/canvas-arena.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/display/canvas-arena.cpp')
-rw-r--r--src/display/canvas-arena.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/display/canvas-arena.cpp b/src/display/canvas-arena.cpp
index 809f14500..8e25c1843 100644
--- a/src/display/canvas-arena.cpp
+++ b/src/display/canvas-arena.cpp
@@ -316,13 +316,17 @@ sp_canvas_arena_event (SPCanvasItem *item, GdkEvent *event)
ret = sp_canvas_arena_send_event (arena, event);
break;
- case GDK_SCROLL:
- if (event->scroll.state & GDK_CONTROL_MASK) {
+ case GDK_SCROLL: {
+ Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+ bool wheelzooms = prefs->getBool("/options/wheelzooms/value");
+ bool ctrl = (event->scroll.state & GDK_CONTROL_MASK);
+ if ((ctrl && !wheelzooms) || (!ctrl && wheelzooms)) {
/* Zoom is emitted by the canvas as well, ignore here */
return FALSE;
}
ret = sp_canvas_arena_send_event (arena, event);
break;
+ }
default:
/* Just send event */