diff options
| author | bulia byak <buliabyak@gmail.com> | 2007-07-29 19:18:19 +0000 |
|---|---|---|
| committer | buliabyak <buliabyak@users.sourceforge.net> | 2007-07-29 19:18:19 +0000 |
| commit | 3938195b9b488c13712db72f0c582d202bc4e669 (patch) | |
| tree | 2e7b2bf59262c1cf6ee45cd6d201ca20353f7a98 /src/pen-context.cpp | |
| parent | optional panning by space (diff) | |
| download | inkscape-3938195b9b488c13712db72f0c582d202bc4e669.tar.gz inkscape-3938195b9b488c13712db72f0c582d202bc4e669.zip | |
due to the order of processing events, we must disable lmb handling in children contexts so that parent event context can handle it for space panning
(bzr r3341)
Diffstat (limited to 'src/pen-context.cpp')
| -rw-r--r-- | src/pen-context.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/pen-context.cpp b/src/pen-context.cpp index f201513c8..53ee7df6d 100644 --- a/src/pen-context.cpp +++ b/src/pen-context.cpp @@ -369,9 +369,10 @@ static gint pen_handle_button_press(SPPenContext *const pc, GdkEventButton const SPDesktop * const desktop = SP_EVENT_CONTEXT_DESKTOP(dc); NR::Point const event_w(bevent.x, bevent.y); NR::Point const event_dt(desktop->w2d(event_w)); + SPEventContext *event_context = SP_EVENT_CONTEXT(pc); gint ret = FALSE; - if (bevent.button == 1) { + if (bevent.button == 1 && !event_context->space_panning) { if (Inkscape::have_viable_layer(desktop, dc->_message_context) == false) { return TRUE; @@ -508,8 +509,10 @@ pen_handle_motion_notify(SPPenContext *const pc, GdkEventMotion const &mevent) { gint ret = FALSE; - if (mevent.state & GDK_BUTTON2_MASK || mevent.state & GDK_BUTTON3_MASK) { - // allow middle-button scrolling + SPEventContext *event_context = SP_EVENT_CONTEXT(pc); + + if (event_context->space_panning || mevent.state & GDK_BUTTON2_MASK || mevent.state & GDK_BUTTON3_MASK) { + // allow scrolling return FALSE; } @@ -639,7 +642,8 @@ pen_handle_button_release(SPPenContext *const pc, GdkEventButton const &revent) } gint ret = FALSE; - if ( revent.button == 1 ) { + SPEventContext *event_context = SP_EVENT_CONTEXT(pc); + if ( revent.button == 1 && !event_context->space_panning) { SPDrawContext *dc = SP_DRAW_CONTEXT (pc); |
