summaryrefslogtreecommitdiffstats
path: root/src/desktop.cpp
diff options
context:
space:
mode:
authorTavmjong Bah <tavmjong@free.fr>2017-03-22 19:03:41 +0000
committertavmjong-free <tavmjong@free.fr>2017-03-22 19:03:41 +0000
commita184a53752fb8027c22e4a5d68819fd7b78a15d8 (patch)
treeaa4d7f84fc1b76dc8afde129eade5d660c9e0219 /src/desktop.cpp
parentAdd entry for canvas rotate step in Inkscape Preferences dialog. (diff)
downloadinkscape-a184a53752fb8027c22e4a5d68819fd7b78a15d8.tar.gz
inkscape-a184a53752fb8027c22e4a5d68819fd7b78a15d8.zip
Add canvas flip. No GUI. Can be bound to keys via preferences.
(bzr r15606)
Diffstat (limited to 'src/desktop.cpp')
-rw-r--r--src/desktop.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/desktop.cpp b/src/desktop.cpp
index c2fdee959..730a542e2 100644
--- a/src/desktop.cpp
+++ b/src/desktop.cpp
@@ -1129,6 +1129,48 @@ SPDesktop::rotate_relative_center_point (Geom::Point const &c, double rotate)
/**
+ * Flip keeping the point 'c' fixed in the desktop window.
+ */
+void
+SPDesktop::flip_absolute_keep_point (Geom::Point const &c, CanvasFlip flip)
+{
+ Geom::Point w = d2w( c ); // Must be before flip.
+ _current_affine.setFlip( flip );
+ set_display_area( c, w );
+}
+
+
+void
+SPDesktop::flip_relative_keep_point (Geom::Point const &c, CanvasFlip flip)
+{
+ Geom::Point w = d2w( c ); // Must be before flip.
+ _current_affine.addFlip( flip );
+ set_display_area( c, w );
+}
+
+
+/**
+ * Flip aligning the point 'c' to the center of desktop window.
+ */
+void
+SPDesktop::flip_absolute_center_point (Geom::Point const &c, CanvasFlip flip)
+{
+ _current_affine.setFlip( flip );
+ Geom::Rect viewbox = canvas->getViewbox();
+ set_display_area( c, viewbox.midpoint() );
+}
+
+
+void
+SPDesktop::flip_relative_center_point (Geom::Point const &c, CanvasFlip flip)
+{
+ _current_affine.addFlip( flip );
+ Geom::Rect viewbox = canvas->getViewbox();
+ set_display_area( c, viewbox.midpoint() );
+}
+
+
+/**
* Scroll canvas by to a particular point (window coordinates).
*/
void