summaryrefslogtreecommitdiffstats
path: root/src/ui/widget
diff options
context:
space:
mode:
authorAlvin Penner <penner@vaxxine.com>2014-11-28 20:54:41 +0000
committerapenner <penner@vaxxine.com>2014-11-28 20:54:41 +0000
commit561b8791651a0b3f9d49dfd9809519f06039e0a4 (patch)
treeeda7c9f819d13cbb691be35d5870211e5848ee5e /src/ui/widget
parentDutch translation update (diff)
downloadinkscape-561b8791651a0b3f9d49dfd9809519f06039e0a4.tar.gz
inkscape-561b8791651a0b3f9d49dfd9809519f06039e0a4.zip
avoid recalculating viewbox if it is not necessary. (Bug 1384915, comment 24)
Fixed bugs: - https://launchpad.net/bugs/1384915 (bzr r13776)
Diffstat (limited to 'src/ui/widget')
-rw-r--r--src/ui/widget/page-sizer.cpp9
-rw-r--r--src/ui/widget/page-sizer.h2
2 files changed, 6 insertions, 5 deletions
diff --git a/src/ui/widget/page-sizer.cpp b/src/ui/widget/page-sizer.cpp
index b775b3c49..df464fbb0 100644
--- a/src/ui/widget/page-sizer.cpp
+++ b/src/ui/widget/page-sizer.cpp
@@ -459,7 +459,7 @@ PageSizer::init ()
* \param changeList whether to modify the paper size list
*/
void
-PageSizer::setDim (Inkscape::Util::Quantity w, Inkscape::Util::Quantity h, bool changeList)
+PageSizer::setDim (Inkscape::Util::Quantity w, Inkscape::Util::Quantity h, bool changeList, bool changeSize)
{
static bool _called = false;
if (_called) {
@@ -479,8 +479,8 @@ PageSizer::setDim (Inkscape::Util::Quantity w, Inkscape::Util::Quantity h, bool
if (SP_ACTIVE_DESKTOP && !_widgetRegistry->isUpdating()) {
SPDocument *doc = sp_desktop_document(SP_ACTIVE_DESKTOP);
Inkscape::Util::Quantity const old_height = doc->getHeight();
- doc->setWidth (w);
- doc->setHeight (h);
+ doc->setWidth (w, changeSize);
+ doc->setHeight (h, changeSize);
// The origin for the user is in the lower left corner; this point should remain stationary when
// changing the page size. The SVG's origin however is in the upper left corner, so we must compensate for this
Geom::Translate const vert_offset(Geom::Point(0, (old_height.value("px") - h.value("px"))));
@@ -717,7 +717,8 @@ PageSizer::on_units_changed()
if (_widgetRegistry->isUpdating()) return;
_unit = _dimensionUnits.getUnit()->abbr;
setDim (Inkscape::Util::Quantity(_dimensionWidth.getValue(""), _dimensionUnits.getUnit()),
- Inkscape::Util::Quantity(_dimensionHeight.getValue(""), _dimensionUnits.getUnit()));
+ Inkscape::Util::Quantity(_dimensionHeight.getValue(""), _dimensionUnits.getUnit()),
+ true, false);
}
} // namespace Widget
diff --git a/src/ui/widget/page-sizer.h b/src/ui/widget/page-sizer.h
index f4bcae4b6..bed117e5a 100644
--- a/src/ui/widget/page-sizer.h
+++ b/src/ui/widget/page-sizer.h
@@ -161,7 +161,7 @@ public:
* Set the page size to the given dimensions. If 'changeList' is
* true, then reset the paper size list to the closest match
*/
- void setDim (Inkscape::Util::Quantity w, Inkscape::Util::Quantity h, bool changeList=true);
+ void setDim (Inkscape::Util::Quantity w, Inkscape::Util::Quantity h, bool changeList=true, bool changeSize=true);
/**
* Updates the scalar widgets for the fit margins. (Just changes the value