[Webkit-unassigned] [Bug 25276] m_absoluteBounds hack should be removed from SVG renderers

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Apr 17 17:38:55 PDT 2009


https://bugs.webkit.org/show_bug.cgi?id=25276


simon.fraser at apple.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #29591|review?                     |review+
               Flag|                            |




------- Comment #2 from simon.fraser at apple.com  2009-04-17 17:38 PDT -------
(From update of attachment 29591)

> +void RenderSVGModelObject::mapLocalToContainer(RenderBoxModelObject* repaintContainer, bool fixed , bool useTransforms, TransformState& transformState) const
> +{
> +    ASSERT(!fixed); // We should have no fixed content in the SVG rendering tree.
> +
> +    // FIXME: If we don't respect useTransforms we break SVG text rendering.  Seems SVG text has its own broken translation hacks.
> +    if (useTransforms)
> +        transformState.applyTransform(localToParentTransform());

I think calling mapLocalToContainer() with useTransforms == false in SVG is
just wrong, and should never happen. We should either assert and
fix callers, or just force it to true.

> +// Copied from RenderBox, this method likely requires further refactoring to work easily for both SVG and CSS Box Model content.
> +IntRect RenderSVGModelObject::outlineBoundsForRepaint(RenderBoxModelObject* /*repaintContainer*/) const
> +{
> +    IntRect box = enclosingIntRect(repaintRectInLocalCoordinates());
> +    adjustRectForOutlineAndShadow(box);
> +
> +    FloatQuad absOutlineQuad = localToAbsoluteQuad(FloatRect(box));
> +    box = absOutlineQuad.enclosingBoundingBox();

Rather than follow the (broken: bug 25282) RenderBox, I think this should do:

FloatQuad containerOutlineQuad = localToContainerQuad(FloatRect(box),
repaintContainer)

r=me


-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the webkit-unassigned mailing list