Comment 2 for bug 666986

Revision history for this message
joakim@verona.se (joakim-verona) wrote :

I have a patch that improves the issue. The created text now behaves much more like text created through the UI.
Bugs certainly remain though.

gboolean
document_interface_text (DocumentInterface *object, int x, int y, gchar *text, GError **error)
{

  Inkscape::XML::Node *text_node = dbus_create_node(object->desk, "svg:text");
    Inkscape::XML::Node *tspan_node = NULL;

    tspan_node = dbus_create_node(object->desk, "svg:tspan");
    sp_repr_set_svg_double(tspan_node, "x", x);
    sp_repr_set_svg_double(tspan_node, "y", y);

    // Add text content node to tspan
    SPDocument * doc = sp_desktop_document (object->desk);
    Inkscape::XML::Document *xml_doc = doc->getReprDoc();

    Inkscape::XML::Node *text_content = xml_doc->createTextNode(text);
    tspan_node->appendChild(text_content);
    text_node->appendChild(tspan_node);
    // Inkscape::GC::release(text_content);
     finish_create_shape (object, error, text_node, (gchar *)"create text");
    return TRUE;
}