summaryrefslogtreecommitdiffstats
path: root/src/widgets/desktop-widget.cpp
diff options
context:
space:
mode:
authorTavmjong Bah <tavmjong@free.fr>2017-03-14 10:05:06 +0000
committertavmjong-free <tavmjong@free.fr>2017-03-14 10:05:06 +0000
commitd300abda7d853f778291aa2dd41c3f26af555e28 (patch)
tree1d9030c4990dc4a40f0c0f95f996b52fed58ffc6 /src/widgets/desktop-widget.cpp
parentAttempt to fix build with dbus enabled. (diff)
downloadinkscape-d300abda7d853f778291aa2dd41c3f26af555e28.tar.gz
inkscape-d300abda7d853f778291aa2dd41c3f26af555e28.zip
Fix zoom reference point when using desktop's zoom widget.
(bzr r15594)
Diffstat (limited to 'src/widgets/desktop-widget.cpp')
-rw-r--r--src/widgets/desktop-widget.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp
index 135cdd96f..122b19e22 100644
--- a/src/widgets/desktop-widget.cpp
+++ b/src/widgets/desktop-widget.cpp
@@ -1898,9 +1898,11 @@ sp_dtw_zoom_value_changed (GtkSpinButton *spin, gpointer data)
SPDesktopWidget *dtw = SP_DESKTOP_WIDGET (data);
SPDesktop *desktop = dtw->desktop;
- Geom::Rect const d = desktop->get_display_area();
+ // Zoom around center of window
+ Geom::Rect const d_canvas = desktop->getCanvas()->getViewbox();
+ Geom::Point midpoint = desktop->w2d(d_canvas.midpoint());
g_signal_handler_block (spin, dtw->zoom_update);
- desktop->zoom_absolute_center_point (d.midpoint(), zoom_factor);
+ desktop->zoom_absolute_center_point (midpoint, zoom_factor);
g_signal_handler_unblock (spin, dtw->zoom_update);
spinbutton_defocus (GTK_WIDGET(spin));