summaryrefslogtreecommitdiffstats
path: root/src/text-context.cpp
diff options
context:
space:
mode:
authorThomas Holder <speleo3@users.sourceforge.net>2008-11-29 13:04:08 +0000
committerspeleo3 <speleo3@users.sourceforge.net>2008-11-29 13:04:08 +0000
commitdf4a7e72f7bb3fa9ea8e56ab220ada98e2ced14e (patch)
treeafb7a48c362362765caa5b3011d6b964a00d712e /src/text-context.cpp
parentcomment (diff)
downloadinkscape-df4a7e72f7bb3fa9ea8e56ab220ada98e2ced14e.tar.gz
inkscape-df4a7e72f7bb3fa9ea8e56ab220ada98e2ced14e.zip
bug #168777 (consider root transform and viewBox)
(bzr r6920)
Diffstat (limited to '')
-rw-r--r--src/text-context.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/text-context.cpp b/src/text-context.cpp
index 1dd5e4e82..078d2bece 100644
--- a/src/text-context.cpp
+++ b/src/text-context.cpp
@@ -512,6 +512,17 @@ sp_text_context_setup_text(SPTextContext *tc)
sp_desktop_selection(ec->desktop)->set(text_item);
Inkscape::GC::release(rtext);
text_item->transform = SP_ITEM(ec->desktop->currentRoot())->getRelativeTransform(ec->desktop->currentLayer());
+
+ // bug #168777 (consider root transform and viewBox)
+ // TODO: more generic solution desirable
+ Geom::Matrix root_transform = sp_item_i2doc_affine(SP_ITEM(ec->desktop->currentRoot()));
+ if (!root_transform.isIdentity()) {
+ text_item->transform = root_transform.inverse() * text_item->transform;
+ Geom::Point pdoc = tc->pdoc * root_transform;
+ sp_repr_set_svg_double(rtext, "x", pdoc[Geom::X]);
+ sp_repr_set_svg_double(rtext, "y", pdoc[Geom::Y]);
+ }
+
text_item->updateRepr();
sp_document_done(sp_desktop_document(ec->desktop), SP_VERB_CONTEXT_TEXT,
_("Create text"));