summaryrefslogtreecommitdiffstats
path: root/src/select-context.cpp
diff options
context:
space:
mode:
authorJohn Bintz <me@johnbintz.com>2006-09-24 22:24:25 +0000
committerjohncoswell <johncoswell@users.sourceforge.net>2006-09-24 22:24:25 +0000
commit7adf0d491d2fa8727c3b7ec84071e40f51067279 (patch)
tree590608fc7f9d6bf681cf5f90c2b1e6ac04a3766c /src/select-context.cpp
parentaxonometric grid: angles cannot be larger than 89 degrees. (diff)
downloadinkscape-7adf0d491d2fa8727c3b7ec84071e40f51067279.tar.gz
inkscape-7adf0d491d2fa8727c3b7ec84071e40f51067279.zip
Added forced redraws to other tools
(bzr r1719)
Diffstat (limited to 'src/select-context.cpp')
-rw-r--r--src/select-context.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/select-context.cpp b/src/select-context.cpp
index 7efd013ec..c527471f5 100644
--- a/src/select-context.cpp
+++ b/src/select-context.cpp
@@ -318,6 +318,8 @@ sp_select_context_item_handler(SPEventContext *event_context, SPItem *item, GdkE
sc->dragging = TRUE;
sc->moved = FALSE;
+ sp_canvas_force_full_redraw_after_interruptions(desktop->canvas, 5);
+
// remember the clicked item in sc->item:
sc->item = sp_event_context_find_item (desktop,
NR::Point(event->button.x, event->button.y), event->button.state & GDK_MOD1_MASK, FALSE);
@@ -331,6 +333,8 @@ sp_select_context_item_handler(SPEventContext *event_context, SPItem *item, GdkE
NULL, event->button.time);
sc->grabbed = SP_CANVAS_ITEM(desktop->drawing);
+ sp_canvas_force_full_redraw_after_interruptions(desktop->canvas, 5);
+
ret = TRUE;
}
} else if (event->button.button == 3) {
@@ -403,6 +407,8 @@ sp_select_context_root_handler(SPEventContext *event_context, GdkEvent *event)
desktop->setCurrentLayer(reinterpret_cast<SPObject *>(clicked_item));
sp_desktop_selection(desktop)->clear();
sc->dragging = false;
+
+ sp_canvas_end_forced_full_redraws(desktop->canvas);
} else { // switch tool
tools_switch_by_item (desktop, clicked_item);
}
@@ -459,9 +465,13 @@ sp_select_context_root_handler(SPEventContext *event_context, GdkEvent *event)
// motion notify coordinates as given (no snapping back to origin)
within_tolerance = false;
- if (sc->button_press_ctrl || sc->button_press_alt) // if ctrl or alt was pressed and it's not click, we want to drag rather than rubberband
+ if (sc->button_press_ctrl || sc->button_press_alt) {
+ // if ctrl or alt was pressed and it's not click, we want to drag rather than rubberband
sc->dragging = TRUE;
+ sp_canvas_force_full_redraw_after_interruptions(desktop->canvas, 5);
+ }
+
if (sc->dragging) {
/* User has dragged fast, so we get events on root (lauris)*/
// not only that; we will end up here when ctrl-dragging as well
@@ -498,6 +508,8 @@ sp_select_context_root_handler(SPEventContext *event_context, GdkEvent *event)
ret = TRUE;
} else {
sc->dragging = FALSE;
+
+ sp_canvas_end_forced_full_redraws(desktop->canvas);
}
} else {
Inkscape::Rubberband::get()->move(p);
@@ -535,6 +547,9 @@ sp_select_context_root_handler(SPEventContext *event_context, GdkEvent *event)
}
}
sc->dragging = FALSE;
+
+ sp_canvas_end_forced_full_redraws(desktop->canvas);
+
if (sc->item) {
sp_object_unref( SP_OBJECT(sc->item), NULL);
}