Code

Fix handle for LPERotateCopies
[inkscape.git] / src / sp-text.cpp
index ceb8dc5a5639dec86a57cd233217b7daabb7e817..0390df6bfa7901646c55470a47dda7a8c1f6b18c 100644 (file)
@@ -428,7 +428,7 @@ static void sp_text_snappoints(SPItem const *item, SnapPointsIter p)
     // the baseline anchor of the first char
     Inkscape::Text::Layout const *layout = te_get_layout((SPItem *) item);
     if(layout != NULL) {
-        *p = layout->characterAnchorPoint(layout->begin()) * sp_item_i2d_affine(item);
+        *p = layout->characterAnchorPoint(layout->begin()) * from_2geom(sp_item_i2d_affine(item));
     }
 }
 
@@ -493,7 +493,7 @@ sp_text_print (SPItem *item, SPPrintContext *ctx)
     dbox.y0 = 0.0;
     dbox.x1 = sp_document_width (SP_OBJECT_DOCUMENT (item));
     dbox.y1 = sp_document_height (SP_OBJECT_DOCUMENT (item));
-    NR::Matrix const ctm = sp_item_i2d_affine(item);
+    NR::Matrix const ctm = from_2geom(sp_item_i2d_affine(item));
 
     group->layout.print(ctx,&pbox,&dbox,&bbox,ctm);
 }
@@ -553,7 +553,7 @@ unsigned SPText::_buildLayoutInput(SPObject *root, Inkscape::Text::Layout::Optio
             Glib::ustring const &string = SP_STRING(child)->string;
             layout.appendText(string, root->style, child, &optional_attrs, child_attrs_offset + length);
             length += string.length();
-        } else {
+        } else if (!sp_repr_is_meta_element(child->repr)) {
             length += _buildLayoutInput(child, optional_attrs, child_attrs_offset + length, in_textpath);
         }
     }