]> git.tokkee.org Git - inkscape.git/commitdiff

Code

fix 1491639
authorbuliabyak <buliabyak@users.sourceforge.net>
Sun, 11 Mar 2007 06:08:06 +0000 (06:08 +0000)
committerbuliabyak <buliabyak@users.sourceforge.net>
Sun, 11 Mar 2007 06:08:06 +0000 (06:08 +0000)
src/sp-style-elem.cpp

index d713a518b2f996740017c08d6ab08633d67d7539..63a9bae38abdb413d8811fddc74dd7f25d403731 100644 (file)
@@ -4,6 +4,7 @@
 #include "document.h"
 #include "sp-style-elem.h"
 #include "attributes.h"
+#include "style.h"
 using Inkscape::XML::TEXT_NODE;
 
 static void sp_style_elem_init(SPStyleElem *style_elem);
@@ -358,6 +359,15 @@ sp_style_elem_read_content(SPObject *const object)
     }
     cr_parser_destroy(parser);
     //object->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG);
+
+    // Style references via class= do not, and actually cannot, use autoupdating URIReferences.
+    // Therefore, if an object refers to a stylesheet which has not yet loaded when the object is being loaded
+    // (e.g. if the stylesheet is below or inside the object in XML), its class= has no effect (bug 1491639).
+    // Below is a partial hack that fixes this for a single case: when the <style> is a child of the object
+    // that uses a style from it. It just forces the parent of <style> to reread its style as soon as the stylesheet
+    // is fully loaded. Naturally, this won't work if the user of the stylesheet is its grandparent or precedent.
+    SPObject *parent = SP_OBJECT_PARENT (object);
+    sp_style_read_from_object(parent->style, parent);
 }
 
 /**