Reviewed by Darin Adler.
- fix the common case of <http://bugs.webkit.org/show_bug.cgi?id=15994>
REGRESSION: Incomplete repaint of CSS image substitution
Test: fast/repaint/clip-with-layout-delta.html
* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState): Account for layout delta when
pushing additional clip.
LayoutTests:
Reviewed by Darin Adler.
- repaint test for <http://bugs.webkit.org/show_bug.cgi?id=15994>
REGRESSION: Incomplete repaint of CSS image substitution
* fast/repaint/clip-with-layout-delta.html: Added.
* platform/mac/fast/repaint/clip-with-layout-delta-expected.checksum: Added.
* platform/mac/fast/repaint/clip-with-layout-delta-expected.png: Added.
* platform/mac/fast/repaint/clip-with-layout-delta-expected.txt: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@27869
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2007-11-16 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by Darin Adler.
+
+ - repaint test for <http://bugs.webkit.org/show_bug.cgi?id=15994>
+ REGRESSION: Incomplete repaint of CSS image substitution
+
+ * fast/repaint/clip-with-layout-delta.html: Added.
+ * platform/mac/fast/repaint/clip-with-layout-delta-expected.checksum: Added.
+ * platform/mac/fast/repaint/clip-with-layout-delta-expected.png: Added.
+ * platform/mac/fast/repaint/clip-with-layout-delta-expected.txt: Added.
+
2007-11-16 Antti Koivisto <antti@apple.com>
Reviewed by Adele.
--- /dev/null
+<html>
+<head>
+ <title>Test for http://bugs.webkit.org/show_bug.cgi?id=15994</title>
+ <style type="text/css">
+ div {
+ overflow: hidden;
+ }
+ div, span {
+ height: 100px;
+ width: 100px;
+ display: block;
+ }
+ span.blue {
+ padding: 100px 0 0 0;
+ background: blue;
+ }
+ </style>
+ <script src="repaint.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ function repaintTest()
+ {
+ document.getElementById('t1').removeAttribute("class");
+ document.getElementById('t2').setAttribute("class", "blue");
+ }
+ </script>
+</head>
+<body onload="runRepaintTest()">
+ <div style="background: green;"><span id="t1" class="blue"> </span></div>
+ <div style="position: relative; margin: -100px 0 0 100px; background: red;"><span id="t2"> </span></div>
+</body>
+</html>
--- /dev/null
+cea95650105cc8ed2890b54ca75e76e0
\ No newline at end of file
--- /dev/null
+layer at (0,0) size 800x600
+ RenderView at (0,0) size 800x600
+layer at (0,0) size 800x600
+ RenderBlock {HTML} at (0,0) size 800x600
+ RenderBody {BODY} at (8,8) size 784x584
+layer at (8,8) size 100x100
+ RenderBlock {DIV} at (0,0) size 100x100 [bgcolor=#008000]
+ RenderBlock {SPAN} at (0,0) size 100x100
+ RenderText {#text} at (0,0) size 4x18
+ text run at (0,0) width 4: " "
+layer at (108,8) size 100x100 scrollHeight 200
+ RenderBlock (relative positioned) {DIV} at (100,0) size 100x100 [bgcolor=#FF0000]
+ RenderBlock {SPAN} at (0,0) size 100x200 [bgcolor=#0000FF]
+ RenderText {#text} at (0,100) size 4x18
+ text run at (0,100) width 4: " "
+2007-11-16 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by Darin Adler.
+
+ - fix the common case of <http://bugs.webkit.org/show_bug.cgi?id=15994>
+ REGRESSION: Incomplete repaint of CSS image substitution
+
+ Test: fast/repaint/clip-with-layout-delta.html
+
+ * rendering/LayoutState.cpp:
+ (WebCore::LayoutState::LayoutState): Account for layout delta when
+ pushing additional clip.
+
2007-11-16 Antti Koivisto <antti@apple.com>
Reviewed by Adele.
int y = m_offset.height();
RenderLayer* layer = renderer->layer();
IntRect clipRect(x, y, layer->width(), layer->height());
+ clipRect.move(renderer->view()->layoutDelta());
if (m_clipped)
m_clipRect.intersect(clipRect);
else {