From 601a9a118cf80672d71e503e86827d17c5043590 Mon Sep 17 00:00:00 2001 From: Alvin Penner Date: Fri, 3 Oct 2014 15:15:18 -0400 Subject: modify scaling procedure for uniform scaling of flowed text (Bug 1278561) Fixed bugs: - https://launchpad.net/bugs/1278561 (bzr r13578) --- src/sp-flowtext.cpp | 17 ++++++++++++++++- src/sp-item-group.cpp | 2 +- 2 files changed, 17 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/sp-flowtext.cpp b/src/sp-flowtext.cpp index 7de65ccc3..72fe86daf 100644 --- a/src/sp-flowtext.cpp +++ b/src/sp-flowtext.cpp @@ -673,6 +673,21 @@ Geom::Affine SPFlowtext::set_transform (Geom::Affine const &xform) return xform; } + SPObject *region = NULL; + for ( SPObject *o = this->firstChild() ; o ; o = o->getNext() ) { + if (SP_IS_FLOWREGION(o)) { + region = o; + break; + } + } + if (region) { + if (SP_IS_RECT(region->firstChild())) { + SPRect *rect = SP_RECT(region->firstChild()); + rect->set_i2d_affine(xform * rect->i2dt_affine()); + rect->doWriteTransform(rect->getRepr(), rect->transform, NULL, true); + } + } + Geom::Affine ret(xform); ret[0] /= ex; ret[1] /= ex; @@ -693,7 +708,7 @@ Geom::Affine SPFlowtext::set_transform (Geom::Affine const &xform) this->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG | SP_TEXT_LAYOUT_MODIFIED_FLAG); - return ret; + return Geom::Affine(); } /* diff --git a/src/sp-item-group.cpp b/src/sp-item-group.cpp index b65be8f22..3fd6a1e80 100644 --- a/src/sp-item-group.cpp +++ b/src/sp-item-group.cpp @@ -725,7 +725,7 @@ void SPGroup::scaleChildItemsRec(Geom::Scale const &sc, Geom::Point const &p, bo if (SP_IS_PERSP3D(item)) { persp3d_apply_affine_transformation(SP_PERSP3D(item), final); - } else if ((SP_IS_TEXT_TEXTPATH(item) || SP_IS_FLOWTEXT(item)) && !item->transform.isIdentity()) { + } else if (SP_IS_TEXT_TEXTPATH(item) && !item->transform.isIdentity()) { // Save and reset current transform Geom::Affine tmp(item->transform); item->transform = Geom::Affine(); -- cgit v1.2.3