Changeset 53561 in webkit


Ignore:
Timestamp:
Jan 20, 2010 1:37:17 PM (14 years ago)
Author:
oliver@apple.com
Message:

2010-01-19 Oliver Hunt <oliver@apple.com>

Reviewed by Beth Dakin.

Insufficient repaint issues with html embedded in foreignObject
https://bugs.webkit.org/show_bug.cgi?id=16318

Partial fix for selection repaint in foreignObject, basically we
just need to make sure foreignObject correctly applies the svg
transform to the selection rect.

  • rendering/RenderBlock.cpp: (WebCore::RenderBlock::paintSelection):
  • rendering/RenderForeignObject.cpp: (WebCore::RenderForeignObject::mapLocalToContainer):
  • rendering/RenderForeignObject.h:
Location:
trunk/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r53560 r53561  
     12010-01-19  Oliver Hunt  <oliver@apple.com>
     2
     3        Reviewed by Beth Dakin.
     4
     5        Insufficient repaint issues with html embedded in foreignObject
     6        https://bugs.webkit.org/show_bug.cgi?id=16318
     7
     8        Partial fix for selection repaint in foreignObject, basically we
     9        just need to make sure foreignObject correctly applies the svg
     10        transform to the selection rect.
     11
     12        * rendering/RenderBlock.cpp:
     13        (WebCore::RenderBlock::paintSelection):
     14        * rendering/RenderForeignObject.cpp:
     15        (WebCore::RenderForeignObject::mapLocalToContainer):
     16        * rendering/RenderForeignObject.h:
     17
    1182010-01-20  Kevin Ollivier  <kevino@theolliviers.com>
    219
  • trunk/WebCore/rendering/RenderBlock.cpp

    r53525 r53561  
    19581958        if (!gapRectsBounds.isEmpty()) {
    19591959            if (RenderLayer* layer = enclosingLayer()) {
    1960                 IntSize offset = hasLayer() ? IntSize() : offsetFromAncestorContainer(layer->renderer());
    1961                 gapRectsBounds.move(offset - IntSize(tx, ty));
     1960                if (!hasLayer()) {
     1961                    FloatRect localBounds(gapRectsBounds);
     1962                    gapRectsBounds = localToContainerQuad(localBounds, layer->renderer()).enclosingBoundingBox();
     1963                }
    19621964                layer->addBlockSelectionGapsBounds(gapRectsBounds);
    19631965            }
  • trunk/WebCore/rendering/RenderForeignObject.cpp

    r53365 r53561  
    121121}
    122122
     123void RenderForeignObject::mapLocalToContainer(RenderBoxModelObject* repaintContainer, bool fixed , bool useTransforms, TransformState& transformState) const
     124{
     125    SVGRenderBase::mapLocalToContainer(this, repaintContainer, fixed, useTransforms, transformState);
     126}
     127
    123128} // namespace WebCore
    124129
  • trunk/WebCore/rendering/RenderForeignObject.h

    r53365 r53561  
    5353    virtual bool isSVGForeignObject() const { return true; }
    5454
     55    virtual void mapLocalToContainer(RenderBoxModelObject* repaintContainer, bool fixed , bool useTransforms, TransformState& transformState) const;
     56
    5557 private:
    5658    TransformationMatrix translationForAttributes() const;
Note: See TracChangeset for help on using the changeset viewer.