[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.15.1-1414-gc69ee75

mitz at apple.com mitz at apple.com
Thu Oct 29 20:39:30 UTC 2009


The following commit has been merged in the webkit-1.1 branch:
commit aa79bccce4342f497320993c714d1d39063d61dd
Author: mitz at apple.com <mitz at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Oct 5 23:37:22 2009 +0000

    REGRESSION (r47440): Inserting text in the middle of content in a scrolled textfield results in painting bugs
    <rdar://problem/7269108>
    https://bugs.webkit.org/show_bug.cgi?id=29982
    
    Reviewed by Darin Adler.
    
    WebCore:
    
    Test: fast/repaint/line-in-scrolled-clipped-block.html
    
    * rendering/RenderBlock.cpp:
    (WebCore::RenderBlock::layoutBlock): Use the unclipped overflow rect
    (including layout overflow) for the repaint rect calculation.
    
    LayoutTests:
    
    * fast/repaint/line-in-scrolled-clipped-block.html: Added.
    * platform/mac/fast/repaint/line-in-scrolled-clipped-block-expected.checksum: Added.
    * platform/mac/fast/repaint/line-in-scrolled-clipped-block-expected.png: Added.
    * platform/mac/fast/repaint/line-in-scrolled-clipped-block-expected.txt: Added.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@49131 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index de7b12d..366c80b 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,16 @@
+2009-10-05  Dan Bernstein  <mitz at apple.com>
+
+        Reviewed by Darin Adler.
+
+        REGRESSION (r47440): Inserting text in the middle of content in a scrolled textfield results in painting bugs
+        <rdar://problem/7269108>
+        https://bugs.webkit.org/show_bug.cgi?id=29982
+
+        * fast/repaint/line-in-scrolled-clipped-block.html: Added.
+        * platform/mac/fast/repaint/line-in-scrolled-clipped-block-expected.checksum: Added.
+        * platform/mac/fast/repaint/line-in-scrolled-clipped-block-expected.png: Added.
+        * platform/mac/fast/repaint/line-in-scrolled-clipped-block-expected.txt: Added.
+
 2009-10-05  Hironori Bono  <hbono at chromium.org>
 
         Reviewed by Eric Seidel.
diff --git a/LayoutTests/fast/repaint/line-in-scrolled-clipped-block.html b/LayoutTests/fast/repaint/line-in-scrolled-clipped-block.html
new file mode 100644
index 0000000..492ce2e
--- /dev/null
+++ b/LayoutTests/fast/repaint/line-in-scrolled-clipped-block.html
@@ -0,0 +1,12 @@
+<script src="resources/repaint.js"></script>
+<body onload="runRepaintTest()">
+<div id="target" style="width: 100px; height: 100px; white-space:pre; overflow: hidden;">                         FAIL     .</div>
+<script>
+    var target = document.getElementById("target");
+    target.scrollLeft = 100;
+
+    function repaintTest()
+    {
+        target.innerText = "                         PASS     .";
+    }
+</script>
diff --git a/LayoutTests/platform/mac/fast/repaint/line-in-scrolled-clipped-block-expected.checksum b/LayoutTests/platform/mac/fast/repaint/line-in-scrolled-clipped-block-expected.checksum
new file mode 100644
index 0000000..cb527b6
--- /dev/null
+++ b/LayoutTests/platform/mac/fast/repaint/line-in-scrolled-clipped-block-expected.checksum
@@ -0,0 +1 @@
+7a5c16a7b6738bf78cbf3348c8e2f87f
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/fast/repaint/line-in-scrolled-clipped-block-expected.png b/LayoutTests/platform/mac/fast/repaint/line-in-scrolled-clipped-block-expected.png
new file mode 100644
index 0000000..434ccdc
Binary files /dev/null and b/LayoutTests/platform/mac/fast/repaint/line-in-scrolled-clipped-block-expected.png differ
diff --git a/LayoutTests/platform/mac/fast/repaint/line-in-scrolled-clipped-block-expected.txt b/LayoutTests/platform/mac/fast/repaint/line-in-scrolled-clipped-block-expected.txt
new file mode 100644
index 0000000..7935052
--- /dev/null
+++ b/LayoutTests/platform/mac/fast/repaint/line-in-scrolled-clipped-block-expected.txt
@@ -0,0 +1,9 @@
+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 scrollX 60 scrollWidth 163
+  RenderBlock {DIV} at (0,0) size 100x100
+    RenderText {#text} at (0,0) size 163x18
+      text run at (0,0) width 163: "                         PASS     ."
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 75901d9..31e6849 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,17 @@
+2009-10-05  Dan Bernstein  <mitz at apple.com>
+
+        Reviewed by Darin Adler.
+
+        REGRESSION (r47440): Inserting text in the middle of content in a scrolled textfield results in painting bugs
+        <rdar://problem/7269108>
+        https://bugs.webkit.org/show_bug.cgi?id=29982
+
+        Test: fast/repaint/line-in-scrolled-clipped-block.html
+
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::layoutBlock): Use the unclipped overflow rect
+        (including layout overflow) for the repaint rect calculation.
+
 2009-10-05  Drew Wilson  <atwilson at google.com>
 
         Reviewed by David Levin.
diff --git a/WebCore/rendering/RenderBlock.cpp b/WebCore/rendering/RenderBlock.cpp
index ae0d76d..237478d 100644
--- a/WebCore/rendering/RenderBlock.cpp
+++ b/WebCore/rendering/RenderBlock.cpp
@@ -774,7 +774,9 @@ void RenderBlock::layoutBlock(bool relayoutChildren)
     // Repaint with our new bounds if they are different from our old bounds.
     bool didFullRepaint = repainter.repaintAfterLayout();
     if (!didFullRepaint && repaintTop != repaintBottom && (style()->visibility() == VISIBLE || enclosingLayer()->hasVisibleContent())) {
-        IntRect repaintRect(leftVisibleOverflow(), repaintTop, rightVisibleOverflow() - leftVisibleOverflow(), repaintBottom - repaintTop);
+        int repaintLeft = min(leftVisualOverflow(), leftLayoutOverflow());
+        int repaintRight = max(rightVisualOverflow(), rightLayoutOverflow());
+        IntRect repaintRect(repaintLeft, repaintTop, repaintRight - repaintLeft, repaintBottom - repaintTop);
 
         // FIXME: Deal with multiple column repainting.  We have to split the repaint
         // rect up into multiple rects if it spans columns.

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list