summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Owens <doctormo@gmail.com>2014-04-04 13:42:28 +0000
committerMartin Owens <doctormo@gmail.com>2014-04-04 13:42:28 +0000
commit430b4cad57740929d94d2c93041d8b63ec5fa8f9 (patch)
treeb1c095b9c5644ff01ef12fe098c61e062649d966 /src
parentMaximised should be the default state for new inkscape users (diff)
downloadinkscape-430b4cad57740929d94d2c93041d8b63ec5fa8f9.tar.gz
inkscape-430b4cad57740929d94d2c93041d8b63ec5fa8f9.zip
Only apply the offset zoom when the document units match the zoom units
(bzr r13264)
Diffstat (limited to 'src')
-rw-r--r--src/verbs.cpp21
1 files changed, 7 insertions, 14 deletions
diff --git a/src/verbs.cpp b/src/verbs.cpp
index fad090852..ab6c25973 100644
--- a/src/verbs.cpp
+++ b/src/verbs.cpp
@@ -1777,6 +1777,13 @@ void ZoomVerb::perform(SPAction *action, void *data)
gdouble zoom_inc =
prefs->getDoubleLimited( "/options/zoomincrement/value", 1.414213562, 1.01, 10 );
+ double zcorr = 1.0;
+ Glib::ustring abbr = prefs->getString("/options/zoomcorrection/unit");
+ if (dt->namedview->doc_units && dt->namedview->doc_units->abbr == abbr)
+ zcorr = prefs->getDouble("/options/zoomcorrection/value", 1.0);
+
+ Geom::Rect const d = dt->get_display_area();
+
switch (reinterpret_cast<std::size_t>(data)) {
case SP_VERB_ZOOM_IN:
{
@@ -1792,7 +1799,6 @@ void ZoomVerb::perform(SPAction *action, void *data)
}
}
- Geom::Rect const d = dt->get_display_area();
dt->zoom_relative( d.midpoint()[Geom::X], d.midpoint()[Geom::Y], mul*zoom_inc);
break;
}
@@ -1810,31 +1816,18 @@ void ZoomVerb::perform(SPAction *action, void *data)
}
}
- Geom::Rect const d = dt->get_display_area();
dt->zoom_relative( d.midpoint()[Geom::X], d.midpoint()[Geom::Y], 1 / (mul*zoom_inc) );
break;
}
case SP_VERB_ZOOM_1_1:
- {
- double zcorr = prefs->getDouble("/options/zoomcorrection/value", 1.0);
- Geom::Rect const d = dt->get_display_area();
dt->zoom_absolute( d.midpoint()[Geom::X], d.midpoint()[Geom::Y], 1.0 * zcorr );
break;
- }
case SP_VERB_ZOOM_1_2:
- {
- double zcorr = prefs->getDouble("/options/zoomcorrection/value", 1.0);
- Geom::Rect const d = dt->get_display_area();
dt->zoom_absolute( d.midpoint()[Geom::X], d.midpoint()[Geom::Y], 0.5 * zcorr );
break;
- }
case SP_VERB_ZOOM_2_1:
- {
- double zcorr = prefs->getDouble("/options/zoomcorrection/value", 1.0);
- Geom::Rect const d = dt->get_display_area();
dt->zoom_absolute( d.midpoint()[Geom::X], d.midpoint()[Geom::Y], 2.0 * zcorr );
break;
- }
case SP_VERB_ZOOM_PAGE:
dt->zoom_page();
break;