diff options
| author | Jabier Arraiza Cenoz <jabier.arraiza@marker.es> | 2016-10-23 18:04:23 +0000 |
|---|---|---|
| committer | jabiertxof <info@marker.es> | 2016-10-23 18:04:23 +0000 |
| commit | 74edf9fcbc3106cccddb2a293275748fefa08f0b (patch) | |
| tree | 8c845140695374fe18bf2243a37883e5a4db1f6a /src/display/sp-canvas.cpp | |
| parent | Add doc rotate with panning (diff) | |
| download | inkscape-74edf9fcbc3106cccddb2a293275748fefa08f0b.tar.gz inkscape-74edf9fcbc3106cccddb2a293275748fefa08f0b.zip | |
Add right click rotation panning
(bzr r15142.1.22)
Diffstat (limited to 'src/display/sp-canvas.cpp')
| -rw-r--r-- | src/display/sp-canvas.cpp | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/display/sp-canvas.cpp b/src/display/sp-canvas.cpp index 2f6caadd3..115b8c613 100644 --- a/src/display/sp-canvas.cpp +++ b/src/display/sp-canvas.cpp @@ -2077,31 +2077,33 @@ void SPCanvas::startRotateTo(double angle) cairo_paint(cr); cairo_destroy(cr); surface_origin = new_backing_store_grey; - clearRotateTo(true); + gtk_widget_queue_draw(GTK_WIDGET(this)); + dirtyAll(); + addIdle(); } bool SPCanvas::endRotateTo() { - if (!started) { + if (!_backing_store || !started) { return false; } started = false; surface_rotated = NULL; surface_origin = NULL; - clearRotateTo(true); + gtk_widget_queue_draw(GTK_WIDGET(this)); + dirtyAll(); + addIdle(); return true; } -void SPCanvas::clearRotateTo(bool clear) +void SPCanvas::clearRotateTo() { if (!started) { return; } gtk_widget_queue_draw(GTK_WIDGET(this)); dirtyAll(); - if (clear) { - addIdle(); - } + addIdle(); } void SPCanvas::rotateTo(SPCanvasItem * item, double angle, bool widget) @@ -2217,7 +2219,8 @@ void SPCanvas::rotateTo(SPCanvasItem * item, double angle, bool widget) cairo_surface_destroy(_backing_store); _backing_store = new_backing_store; cairo_pattern_destroy (source_pattern); - clearRotateTo(false); + gtk_widget_queue_draw(GTK_WIDGET(this)); + addIdle(); } void SPCanvas::updateNow() |
