Changeset 39781 in webkit


Ignore:
Timestamp:
Jan 10, 2009 6:47:51 PM (15 years ago)
Author:
Simon Fraser
Message:

2009-01-10 Simon Fraser <Simon Fraser>

Reviewed by Dan Bernstein

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

We need to disable LayoutState when an object has transforms,
because LayoutState is not transform-aware and therefore
repaint rects can be computed incorrectly.

Test: fast/repaint/transform-disable-layoutstate.html

  • rendering/RenderBlock.cpp: (WebCore::RenderBlock::layoutBlock): (WebCore::RenderBlock::layoutOnlyPositionedObjects):
  • rendering/RenderFlexibleBox.cpp: (WebCore::RenderFlexibleBox::layoutBlock):
Location:
trunk
Files:
4 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r39780 r39781  
     12009-01-10  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Reviewed by Dan Bernstein
     4
     5        https://bugs.webkit.org/show_bug.cgi?id=23222
     6       
     7        Test for repainting which is affected by LayoutState under an element
     8        with a CSS transform.
     9
     10        * fast/repaint/transform-disable-layoutstate.html: Added.
     11        * platform/mac/fast/repaint/transform-disable-layoutstate-expected.checksum: Added.
     12        * platform/mac/fast/repaint/transform-disable-layoutstate-expected.png: Added.
     13        * platform/mac/fast/repaint/transform-disable-layoutstate-expected.txt: Added.
     14
    1152009-01-09  Sam Weinig  <sam@webkit.org>
    216
  • trunk/WebCore/ChangeLog

    r39780 r39781  
     12009-01-10  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Reviewed by Dan Bernstein
     4
     5        https://bugs.webkit.org/show_bug.cgi?id=23222
     6       
     7        We need to disable LayoutState when an object has transforms,
     8        because LayoutState is not transform-aware and therefore
     9        repaint rects can be computed incorrectly.
     10       
     11        Test: fast/repaint/transform-disable-layoutstate.html
     12
     13        * rendering/RenderBlock.cpp:
     14        (WebCore::RenderBlock::layoutBlock):
     15        (WebCore::RenderBlock::layoutOnlyPositionedObjects):
     16        * rendering/RenderFlexibleBox.cpp:
     17        (WebCore::RenderFlexibleBox::layoutBlock):
     18
    1192009-01-09  Holger Hans Peter Freyther  <zecke@selfish.org>
    220
  • trunk/WebCore/rendering/RenderBlock.cpp

    r39634 r39781  
    596596    }
    597597
    598     LayoutStateMaintainer statePusher(view(), this, IntSize(xPos(), yPos()), !m_hasColumns && !hasReflection());
     598    LayoutStateMaintainer statePusher(view(), this, IntSize(xPos(), yPos()), !m_hasColumns && !hasTransform() && !hasReflection());
    599599
    600600    int oldWidth = m_width;
     
    13911391        return false;
    13921392
    1393     LayoutStateMaintainer statePusher(view(), this, IntSize(xPos(), yPos()), !m_hasColumns);
     1393    LayoutStateMaintainer statePusher(view(), this, IntSize(xPos(), yPos()), !m_hasColumns && !hasTransform() && !hasReflection());
    13941394
    13951395    if (needsPositionedMovementLayout()) {
  • trunk/WebCore/rendering/RenderFlexibleBox.cpp

    r38418 r39781  
    221221    }
    222222
    223     LayoutStateMaintainer statePusher(view(), this, IntSize(m_x, m_y), !hasReflection());
     223    LayoutStateMaintainer statePusher(view(), this, IntSize(m_x, m_y), !hasTransform() && !hasReflection());
    224224
    225225    int previousWidth = m_width;
Note: See TracChangeset for help on using the changeset viewer.