summaryrefslogtreecommitdiffstats
path: root/src/display
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2016-10-23 18:04:23 +0000
committerjabiertxof <info@marker.es>2016-10-23 18:04:23 +0000
commit74edf9fcbc3106cccddb2a293275748fefa08f0b (patch)
tree8c845140695374fe18bf2243a37883e5a4db1f6a /src/display
parentAdd doc rotate with panning (diff)
downloadinkscape-74edf9fcbc3106cccddb2a293275748fefa08f0b.tar.gz
inkscape-74edf9fcbc3106cccddb2a293275748fefa08f0b.zip
Add right click rotation panning
(bzr r15142.1.22)
Diffstat (limited to 'src/display')
-rw-r--r--src/display/sp-canvas.cpp19
-rw-r--r--src/display/sp-canvas.h2
2 files changed, 12 insertions, 9 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()
diff --git a/src/display/sp-canvas.h b/src/display/sp-canvas.h
index 122cc2d8c..628bc74ca 100644
--- a/src/display/sp-canvas.h
+++ b/src/display/sp-canvas.h
@@ -75,7 +75,7 @@ struct SPCanvas {
void startRotateTo(double angle);
void rotateTo(SPCanvasItem * item, double angle, bool widget = false);
bool endRotateTo();
- void clearRotateTo(bool clear);
+ void clearRotateTo();
/// Synchronously updates the canvas if necessary.
void updateNow();