summaryrefslogtreecommitdiffstats
path: root/src/ui/widget/page-sizer.cpp
diff options
context:
space:
mode:
authorKrzysztof Kosi??ski <tweenk.pl@gmail.com>2011-07-06 01:59:32 +0000
committerKrzysztof KosiƄski <tweenk.pl@gmail.com>2011-07-06 01:59:32 +0000
commite65a02ed32b78534739aba24929ece7c44dd967f (patch)
tree13cf022f18f6b5bae46aad4bc339e512f069a514 /src/ui/widget/page-sizer.cpp
parentPull 2Geom revision 2013 (extra constructors for Rect). (diff)
parentText edit dialog: Apply button should grab default only after adding to window (diff)
downloadinkscape-e65a02ed32b78534739aba24929ece7c44dd967f.tar.gz
inkscape-e65a02ed32b78534739aba24929ece7c44dd967f.zip
Merge from trunk
(bzr r10347.1.5)
Diffstat (limited to 'src/ui/widget/page-sizer.cpp')
-rw-r--r--src/ui/widget/page-sizer.cpp32
1 files changed, 19 insertions, 13 deletions
diff --git a/src/ui/widget/page-sizer.cpp b/src/ui/widget/page-sizer.cpp
index 626be7625..f7759f103 100644
--- a/src/ui/widget/page-sizer.cpp
+++ b/src/ui/widget/page-sizer.cpp
@@ -236,7 +236,7 @@ PageSizer::PageSizer(Registry & _wr)
_marginLeft( _("L_eft:"), _("Left margin"), "fit-margin-left", _wr),
_marginRight( _("Ri_ght:"), _("Right margin"), "fit-margin-right", _wr),
_marginBottom( _("Botto_m:"), _("Bottom margin"), "fit-margin-bottom", _wr),
-
+ _lockMarginUpdate(false),
_widgetRegistry(&_wr)
{
//# Set up the Paper Size combo box
@@ -465,18 +465,20 @@ PageSizer::setDim (double w, double h, bool changeList)
void
PageSizer::updateFitMarginsUI(Inkscape::XML::Node *nv_repr)
{
- double value = 0.0;
- if (sp_repr_get_double(nv_repr, "fit-margin-top", &value)) {
- _marginTop.setValue(value);
- }
- if (sp_repr_get_double(nv_repr, "fit-margin-left", &value)) {
- _marginLeft.setValue(value);
- }
- if (sp_repr_get_double(nv_repr, "fit-margin-right", &value)) {
- _marginRight.setValue(value);
- }
- if (sp_repr_get_double(nv_repr, "fit-margin-bottom", &value)) {
- _marginBottom.setValue(value);
+ if (!_lockMarginUpdate) {
+ double value = 0.0;
+ if (sp_repr_get_double(nv_repr, "fit-margin-top", &value)) {
+ _marginTop.setValue(value);
+ }
+ if (sp_repr_get_double(nv_repr, "fit-margin-left", &value)) {
+ _marginLeft.setValue(value);
+ }
+ if (sp_repr_get_double(nv_repr, "fit-margin-right", &value)) {
+ _marginRight.setValue(value);
+ }
+ if (sp_repr_get_double(nv_repr, "fit-margin-bottom", &value)) {
+ _marginBottom.setValue(value);
+ }
}
}
@@ -538,14 +540,18 @@ PageSizer::fire_fit_canvas_to_selection_or_drawing()
SPDocument *doc;
SPNamedView *nv;
Inkscape::XML::Node *nv_repr;
+
if ((doc = sp_desktop_document(SP_ACTIVE_DESKTOP))
&& (nv = sp_document_namedview(doc, 0))
&& (nv_repr = nv->getRepr())) {
+ _lockMarginUpdate = true;
sp_repr_set_svg_double(nv_repr, "fit-margin-top", _marginTop.getValue());
sp_repr_set_svg_double(nv_repr, "fit-margin-left", _marginLeft.getValue());
sp_repr_set_svg_double(nv_repr, "fit-margin-right", _marginRight.getValue());
sp_repr_set_svg_double(nv_repr, "fit-margin-bottom", _marginBottom.getValue());
+ _lockMarginUpdate = false;
}
+
Verb *verb = Verb::get( SP_VERB_FIT_CANVAS_TO_SELECTION_OR_DRAWING );
if (verb) {
SPAction *action = verb->get_action(dt);