summaryrefslogtreecommitdiffstats
path: root/src/display/sp-canvas.cpp
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2016-10-23 14:33:23 +0000
committerjabiertxof <info@marker.es>2016-10-23 14:33:23 +0000
commit6744c4d18446fad6d84973f97491634a09215afd (patch)
treedac0e801da12706130b64b55c9336274a6a72aa9 /src/display/sp-canvas.cpp
parentAdd right click attempt (diff)
parentCMake: inkscape.com needs the "-mconsole" linker flag to be useful (diff)
downloadinkscape-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.cpp28
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()