diff options
Diffstat (limited to 'src/display/canvas-arena.cpp')
| -rw-r--r-- | src/display/canvas-arena.cpp | 8 |
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 */ |
