diff options
| author | bulia byak <buliabyak@gmail.com> | 2006-11-22 00:50:56 +0000 |
|---|---|---|
| committer | buliabyak <buliabyak@users.sourceforge.net> | 2006-11-22 00:50:56 +0000 |
| commit | 7e1a04d09fdf8d7b5d38b4ab221b08d475eb5a95 (patch) | |
| tree | 6022e1c83c28c2129d97adabd6a8a44f919e3d25 /src/event-context.cpp | |
| parent | button-down event may have been missed (e.g. when you do button-1 down while ... (diff) | |
| download | inkscape-7e1a04d09fdf8d7b5d38b4ab221b08d475eb5a95.tar.gz inkscape-7e1a04d09fdf8d7b5d38b4ab221b08d475eb5a95.zip | |
rearrange code to make button actions a bit more interruptibility-proof
(bzr r2003)
Diffstat (limited to 'src/event-context.cpp')
| -rw-r--r-- | src/event-context.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/event-context.cpp b/src/event-context.cpp index e63df0d2f..b3ac1ad73 100644 --- a/src/event-context.cpp +++ b/src/event-context.cpp @@ -450,6 +450,7 @@ static gint sp_event_context_private_root_handler(SPEventContext *event_context, } break; case GDK_BUTTON_RELEASE: + xp = yp = 0; if (within_tolerance && (panning || zoom_rb)) { dontgrab ++; zoom_rb = 0; @@ -457,26 +458,25 @@ static gint sp_event_context_private_root_handler(SPEventContext *event_context, NR::Point const event_dt(desktop->w2d(event_w)); double const zoom_power = ( (event->button.state & GDK_SHIFT_MASK) ? -dontgrab : dontgrab ); + gtk_timeout_add(250, (GtkFunction) grab_allow_again, NULL); desktop->zoom_relative_keep_point(event_dt, pow(zoom_inc, zoom_power)); - gtk_timeout_add(250, (GtkFunction) grab_allow_again, NULL); desktop->updateNow(); } if (panning == event->button.button) { panning = 0; + ret = TRUE; sp_canvas_item_ungrab(SP_CANVAS_ITEM(desktop->acetate), event->button.time); desktop->updateNow(); - ret = TRUE; } else if (zoom_rb == event->button.button) { zoom_rb = 0; NR::Maybe<NR::Rect> const b = Inkscape::Rubberband::get()->getRectangle(); + Inkscape::Rubberband::get()->stop(); if (b != NR::Nothing() && !within_tolerance) { desktop->set_display_area(b.assume(), 10); } - Inkscape::Rubberband::get()->stop(); } - xp = yp = 0; break; case GDK_KEY_PRESS: switch (get_group0_keyval(&event->key)) { |
