This example is a drop down list. Content of list is added by script on opening widget. ( click on a rectangle to load widget ) With webkit list content is not show ... I use clipPath and translate to show list in right place, but after some tests, reason come not from clipPath or translate. I think that after objects will be added to referrer group by script, <use> element is not refresh ( I try without success to use forceRedraw() ... ) Michel Hirtzler Very good job about svg, thanks
Something is broken here. I'm not sure if it's exactly as the reporter describes though. We'll need a single-file reduction to really understand the problem.
(In reply to comment #1) > Something is broken here. I'm not sure if it's exactly as the reporter > describes though. We'll need a single-file reduction to really understand the > problem. I post single file http://pilat.free.fr/Safari/use_bug.svg By click new line is created in group and must appear in <use> referring to this group on right This example run fine with Adobe plugin, Opera, Firefox and Batik .... but not in Safari (beta 3.03 or lasted nighty) new line is in group but not in <use> ...
Created attachment 16379 [details] Test case from Comment #2
Created attachment 16550 [details] First attempt This fixes it. Cheers, Rob.
Comment on attachment 16550 [details] First attempt + if (ownerDocument()->parsing()) + return; Please use document(). ownerDocument() is just a slower way to call document() that returns 0 in the special case of a Document node. Why is it OK to skip updateElementInstance if parsing is true? What guarantees it's called later? review- for the ownerDocument thing and I'd also like to know the answer to my question.
Hi, (In reply to comment #5) > (From update of attachment 16550 [details] [edit]) > + if (ownerDocument()->parsing()) > + return; > > Please use document(). ownerDocument() is just a slower way to call document() > that returns 0 in the special case of a Document node. Ok, will do. I'll also change the other spots where we use them, but in a separate patch. > Why is it OK to skip updateElementInstance if parsing is true? What guarantees > it's called later? Since addChild is not used, every append triggers a childrenChanged while parsing. However, the related shadow tree is only built later when the <use> is processed, and <use> needs a referenced tree that is fully build anyway. The only phase we didnt cover is dynamic addition and that is what this patch fixes. I hope that clears it up. Cheers, Rob.
Created attachment 16562 [details] Updated patch. Now uses document(). Cheers, Rob.
Comment on attachment 16562 [details] Updated patch. Looks good. I wish that the copy could happen lazily (invalidate the ElementInstance and have it re-pull.) I'll file a bug about that.
Oh, one thought I had. There are no valid targets of <use> which are not SVGStyledElements, right?
Landed in r26171.