diff options
| author | Jabier Arraiza Cenoz <jabier.arraiza@marker.es> | 2016-10-23 14:33:23 +0000 |
|---|---|---|
| committer | jabiertxof <info@marker.es> | 2016-10-23 14:33:23 +0000 |
| commit | 6744c4d18446fad6d84973f97491634a09215afd (patch) | |
| tree | dac0e801da12706130b64b55c9336274a6a72aa9 /src/display/sp-canvas.cpp | |
| parent | Add right click attempt (diff) | |
| parent | CMake: inkscape.com needs the "-mconsole" linker flag to be useful (diff) | |
| download | inkscape-6744c4d18446fad6d84973f97491634a09215afd.tar.gz inkscape-6744c4d18446fad6d84973f97491634a09215afd.zip | |
Add doc rotate with panning
(bzr r15142.1.21)
Diffstat (limited to 'src/display/sp-canvas.cpp')
| -rw-r--r-- | src/display/sp-canvas.cpp | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/src/display/sp-canvas.cpp b/src/display/sp-canvas.cpp index 745896dd7..2f6caadd3 100644 --- a/src/display/sp-canvas.cpp +++ b/src/display/sp-canvas.cpp @@ -2077,22 +2077,31 @@ void SPCanvas::startRotateTo(double angle) cairo_paint(cr); cairo_destroy(cr); surface_origin = new_backing_store_grey; - gtk_widget_queue_draw(GTK_WIDGET(this)); - dirtyAll(); - addIdle(); + clearRotateTo(true); } -void SPCanvas::endRotateTo() +bool SPCanvas::endRotateTo() { - if (!_backing_store) { - return; + if (!started) { + return false; } started = false; surface_rotated = NULL; surface_origin = NULL; + clearRotateTo(true); + return true; +} + +void SPCanvas::clearRotateTo(bool clear) +{ + if (!started) { + return; + } gtk_widget_queue_draw(GTK_WIDGET(this)); dirtyAll(); - addIdle(); + if (clear) { + addIdle(); + } } void SPCanvas::rotateTo(SPCanvasItem * item, double angle, bool widget) @@ -2199,7 +2208,7 @@ void SPCanvas::rotateTo(SPCanvasItem * item, double angle, bool widget) cairo_translate(cr, (-half_w + 10) * -1 ,(-half_h + 55) * -1); cairo_translate(cr, -half_w + 10 ,-half_h + 70); s.str(""); - s << _("+ALT, Reset"); + s << _("+CTRL+SHIFT, Reset"); cairo_text_path(cr, s.str().c_str()); cairo_fill(cr); //cairo_translate(cr, (-half_w + 10) * -1 ,(-half_h + 60) * -1); @@ -2208,8 +2217,7 @@ void SPCanvas::rotateTo(SPCanvasItem * item, double angle, bool widget) cairo_surface_destroy(_backing_store); _backing_store = new_backing_store; cairo_pattern_destroy (source_pattern); - gtk_widget_queue_draw(GTK_WIDGET(this)); - addIdle(); + clearRotateTo(false); } void SPCanvas::updateNow() |
