Changeset 23944 in webkit


Ignore:
Timestamp:
Jul 3, 2007 6:42:11 AM (17 years ago)
Author:
antti
Message:

LayoutTests:

Reviewed by Maciej.


Test for REGRESSION: misplaced selection ring remains after link is no longer focused.
<rdar://problem/5205580>

  • fast/repaint/focus-layers-expected.checksum: Added.
  • fast/repaint/focus-layers-expected.png: Added.
  • fast/repaint/focus-layers-expected.txt: Added.
  • fast/repaint/focus-layers.html: Added.

WebCore:

Reviewed by Maciej.


REGRESSION: misplaced selection ring remains after link is no longer focused.
<rdar://problem/5205580>


Fix placement of selection ring when part of the ring is in a different layer.

  • rendering/RenderFlow.cpp: (WebCore::RenderFlow::addFocusRingRects): Get coordinates right when moving to a different layer.
  • rendering/RenderObject.cpp: (WebCore::RenderObject::setStyle): Don't reset state variables when not necessary. When repaint() was called at the end of setSyle() it would get repaint rects wrong in some cases.
Location:
trunk
Files:
4 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r23941 r23944  
     12007-07-03  Antti Koivisto  <antti@apple.com>
     2
     3        Reviewed by Maciej.
     4       
     5        Test for REGRESSION: misplaced selection ring remains after link is no longer focused.
     6        <rdar://problem/5205580>
     7
     8        * fast/repaint/focus-layers-expected.checksum: Added.
     9        * fast/repaint/focus-layers-expected.png: Added.
     10        * fast/repaint/focus-layers-expected.txt: Added.
     11        * fast/repaint/focus-layers.html: Added.
     12
    1132007-07-02  Adam Roben  <aroben@apple.com>
    214
  • trunk/WebCore/ChangeLog

    r23943 r23944  
     12007-07-03  Antti Koivisto  <antti@apple.com>
     2
     3        Reviewed by Maciej.
     4       
     5        REGRESSION: misplaced selection ring remains after link is no longer focused.
     6        <rdar://problem/5205580>
     7       
     8        Fix placement of selection ring when part of the ring is in a different layer.
     9
     10        * rendering/RenderFlow.cpp:
     11        (WebCore::RenderFlow::addFocusRingRects): Get coordinates right when moving to a different layer.
     12        * rendering/RenderObject.cpp:
     13        (WebCore::RenderObject::setStyle):
     14        Don't reset state variables when not necessary.  When repaint() was called at the end of setSyle() it would
     15        get repaint rects wrong in some cases.
     16
    1172007-07-03  Antti Koivisto  <antti@apple.com>
    218
  • trunk/WebCore/rendering/RenderFlow.cpp

    r21605 r23944  
    690690
    691691        for (RenderObject* curr = firstChild(); curr; curr = curr->nextSibling())
    692             if (!curr->isText() && !curr->isListMarker())
    693                 curr->addFocusRingRects(graphicsContext, tx + curr->xPos(), ty + curr->yPos());
     692            if (!curr->isText() && !curr->isListMarker()) {
     693                int x = 0;
     694                int y = 0;
     695                if (curr->layer())
     696                    curr->absolutePosition(x, y);
     697                else {
     698                    x = tx + curr->xPos();
     699                    y = ty + curr->yPos();
     700                }
     701                curr->addFocusRingRects(graphicsContext, x, y);
     702            }
    694703    }
    695704
  • trunk/WebCore/rendering/RenderObject.cpp

    r23809 r23944  
    22752275
    22762276        // reset style flags
    2277         m_floating = false;
    2278         m_positioned = false;
    2279         m_relPositioned = false;
     2277        if (d == RenderStyle::Layout) {
     2278            m_floating = false;
     2279            m_positioned = false;
     2280            m_relPositioned = false;
     2281        }
    22802282        m_paintBackground = false;
    22812283        m_hasOverflowClip = false;
Note: See TracChangeset for help on using the changeset viewer.