[Webkit-unassigned] [Bug 38836] SMIL Animation does not starts
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Tue Jun 1 05:21:31 PDT 2010
https://bugs.webkit.org/show_bug.cgi?id=38836
Dirk Schulze <krit at webkit.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |zimmermann at kde.org
--- Comment #3 from Dirk Schulze <krit at webkit.org> 2010-06-01 05:21:31 PST ---
(In reply to comment #2)
> The root cause of this bug is: the masker is not updated during animation.
> This problem can only reproduce with 'animateTransform' and 'animateMotion'. Other animation elements use a different mechanism:
> Everything is routed through 'setAttribute' calls, then the masker gets invalidated in attribute changed callback SVGStyledElement::svgAttributeChanged'.
>
> I have a quick fix for this bug.
> Add the following code to the end of SVGAnimateTransformElement::applyResultsToTarget()
>
> if (targetElement->isStyled())
> static_cast<SVGStyledElement*>(targetElement)->invalidateResourcesInAncestorChain();
>
> It works, but i'm not sure if this is the correct solution.
>
> Dirk, do you have any suggestions?
Well, isn't it better to do it like other elements (SVGRectElement, SVGGElement, ...)? It would look like this:
RenderObject* renderer = targetElement->renderer();
if (targetElement->isStyled()) {
renderer->setNeedsTransformUpdate();
renderer->setNeedsLayout(true);
} else
renderer->setNeedsLayout(true);
This is untested, but telling the renderer to just update the transform is maybe faster. And it's my opinion, that the code shouldn't handle resources manually here.
Niko may know it better, since he changed layouting lately.
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list