diff options
| author | Tavmjong Bah <tavmjong@free.fr> | 2017-03-22 19:03:41 +0000 |
|---|---|---|
| committer | tavmjong-free <tavmjong@free.fr> | 2017-03-22 19:03:41 +0000 |
| commit | a184a53752fb8027c22e4a5d68819fd7b78a15d8 (patch) | |
| tree | aa4d7f84fc1b76dc8afde129eade5d660c9e0219 /src/desktop.cpp | |
| parent | Add entry for canvas rotate step in Inkscape Preferences dialog. (diff) | |
| download | inkscape-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.cpp | 42 |
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 |
