summaryrefslogtreecommitdiffstats
path: root/src/ui/dialog/document-properties.cpp
diff options
context:
space:
mode:
authorMatthew Petroff <matthew@mpetroff.net>2013-09-23 00:26:44 +0000
committerMatthew Petroff <matthew@mpetroff.net>2013-09-23 00:26:44 +0000
commit37b7de3efa31c7aa3094aed7c849a08e7f7bedfd (patch)
tree46af51535782ad2c83139055b411f2a8b10853e4 /src/ui/dialog/document-properties.cpp
parentFixed bug in last commit. (diff)
downloadinkscape-37b7de3efa31c7aa3094aed7c849a08e7f7bedfd.tar.gz
inkscape-37b7de3efa31c7aa3094aed7c849a08e7f7bedfd.zip
Fix percentage document size handling.
Fixed bugs: - https://launchpad.net/bugs/1228852 (bzr r12577)
Diffstat (limited to 'src/ui/dialog/document-properties.cpp')
-rw-r--r--src/ui/dialog/document-properties.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/ui/dialog/document-properties.cpp b/src/ui/dialog/document-properties.cpp
index ec04f6d98..37d0ce213 100644
--- a/src/ui/dialog/document-properties.cpp
+++ b/src/ui/dialog/document-properties.cpp
@@ -1440,15 +1440,21 @@ void DocumentProperties::update()
if (nv->doc_units)
_rum_deflt.setUnit (nv->doc_units->abbr);
- double const doc_w = sp_desktop_document(dt)->getRoot()->width.value;
+ double doc_w = sp_desktop_document(dt)->getRoot()->width.value;
Glib::ustring doc_w_unit = unit_table.getUnit(sp_desktop_document(dt)->getRoot()->width.unit).abbr;
if (doc_w_unit == "") {
doc_w_unit = "px";
+ } else if (doc_w_unit == "%" && sp_desktop_document(dt)->getRoot()->viewBox_set) {
+ doc_w_unit = "px";
+ doc_w = sp_desktop_document(dt)->getRoot()->viewBox.width();
}
- double const doc_h = sp_desktop_document(dt)->getRoot()->height.value;
+ double doc_h = sp_desktop_document(dt)->getRoot()->height.value;
Glib::ustring doc_h_unit = unit_table.getUnit(sp_desktop_document(dt)->getRoot()->height.unit).abbr;
if (doc_h_unit == "") {
doc_h_unit = "px";
+ } else if (doc_h_unit == "%" && sp_desktop_document(dt)->getRoot()->viewBox_set) {
+ doc_h_unit = "px";
+ doc_h = sp_desktop_document(dt)->getRoot()->viewBox.height();
}
_page_sizer.setDim(Inkscape::Util::Quantity(doc_w, doc_w_unit), Inkscape::Util::Quantity(doc_h, doc_h_unit));
_page_sizer.updateFitMarginsUI(nv->getRepr());