[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

hyatt at apple.com hyatt at apple.com
Wed Dec 22 15:50:26 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 6dfd325a8375165b157f764a1227db1ec3c78a50
Author: hyatt at apple.com <hyatt at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Sun Nov 14 06:14:33 2010 +0000

    https://bugs.webkit.org/show_bug.cgi?id=49506
    
    Reviewed by Anders Carlsson.
    
    Repaint is broken across writing mode boundaries.  It's not enough to add in flipped offsets.  You have
    to flip the rect itself.
    
    WebCore:
    
    Added fast/repaint/repaint-across-writing-mode-boundary.html
    
    * rendering/RenderBox.cpp:
    (WebCore::RenderBox::computeRectForRepaint):
    
    LayoutTests:
    
    Added fast/repaint/repaint-across-writing-mode-boundary.html
    * fast/repaint/repaint-across-writing-mode-boundary.html: Added.
    * platform/mac/fast/repaint/repaint-across-writing-mode-boundary-expected.checksum: Added.
    * platform/mac/fast/repaint/repaint-across-writing-mode-boundary-expected.png: Added.
    * platform/mac/fast/repaint/repaint-across-writing-mode-boundary-expected.txt: Added.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@71980 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 7a0feae..df9d40c 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,5 +1,20 @@
 2010-11-13  David Hyatt  <hyatt at apple.com>
 
+        Reviewed by Anders Carlsson.
+
+        https://bugs.webkit.org/show_bug.cgi?id=49506
+
+        Repaint is broken across writing mode boundaries.  It's not enough to add in flipped offsets.  You have
+        to flip the rect itself.
+
+        Added fast/repaint/repaint-across-writing-mode-boundary.html
+        * fast/repaint/repaint-across-writing-mode-boundary.html: Added.
+        * platform/mac/fast/repaint/repaint-across-writing-mode-boundary-expected.checksum: Added.
+        * platform/mac/fast/repaint/repaint-across-writing-mode-boundary-expected.png: Added.
+        * platform/mac/fast/repaint/repaint-across-writing-mode-boundary-expected.txt: Added.
+
+2010-11-13  David Hyatt  <hyatt at apple.com>
+
         Reviewed by Dan Bernstein.
 
         https://bugs.webkit.org/show_bug.cgi?id=49505
diff --git a/LayoutTests/fast/repaint/repaint-across-writing-mode-boundary.html b/LayoutTests/fast/repaint/repaint-across-writing-mode-boundary.html
new file mode 100644
index 0000000..1c3fb18
--- /dev/null
+++ b/LayoutTests/fast/repaint/repaint-across-writing-mode-boundary.html
@@ -0,0 +1,77 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<script src="resources/repaint.js"></script>
+<script>
+function repaintTest() {
+    if (eventSender) {
+        eventSender.mouseMoveTo(569, 189);
+        eventSender.mouseDown();
+        eventSender.mouseMoveTo(569, 189);
+        eventSender.mouseMoveTo(569, 229);
+        eventSender.mouseUp();
+    }
+}
+</script>
+
+<title>Repaint Test Across Writing Mode Boundaries</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  
+<style type="text/css">
+
+body {
+  margin: 50px;
+  font-size: 20px;
+  font-family: Times;
+}
+
+.lrblock {
+  writing-mode: tb-lr;  /* IE */
+  -webkit-writing-mode: vertical-lr;
+  height: 275px;
+  margin-bottom: 50px;
+  padding: 1px;
+  background-color: #eee;
+}
+
+.basic {
+  width: 275px;
+  margin: 0;
+  padding: 1px;
+  writing-mode: lr-tb;  /* IE */
+  -webkit-writing-mode: horizontal-tb;
+}
+
+div.d0 {
+  background-color: #fee;
+}
+
+div.d1 {
+  background-color: #ffe;
+}
+
+p {
+  margin: 10% 5% 10% 5%;
+  background-color: #faa;
+  border-left: 20px solid #f88;
+  border-right: 20px solid #f88;
+  line-height: 1em;
+  padding: 1px;
+}
+
+.vert {
+  writing-mode: tb-rl;  /* IE */
+  -webkit-writing-mode: vertical-rl;
+}
+
+</style>
+</head>
+<body onload="runRepaintTest()">
+
+<div class="lrblock">
+<div class="basic d0"><p>第一段落 paragraph 1</p><p>第二段落 paragraph 2</p></div>
+<div class="basic d1 vert"><p>第一段落 paragraph 1</p><p>第二段落 paragraph 2</p></div>
+</div>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/fast/repaint/repaint-across-writing-mode-boundary-expected.checksum b/LayoutTests/platform/mac/fast/repaint/repaint-across-writing-mode-boundary-expected.checksum
new file mode 100644
index 0000000..38fdc3e
--- /dev/null
+++ b/LayoutTests/platform/mac/fast/repaint/repaint-across-writing-mode-boundary-expected.checksum
@@ -0,0 +1 @@
+a50ed30ed182f474a47801315053e84e
\ No newline at end of file
diff --git a/LayoutTests/platform/mac/fast/repaint/repaint-across-writing-mode-boundary-expected.png b/LayoutTests/platform/mac/fast/repaint/repaint-across-writing-mode-boundary-expected.png
new file mode 100644
index 0000000..549871b
Binary files /dev/null and b/LayoutTests/platform/mac/fast/repaint/repaint-across-writing-mode-boundary-expected.png differ
diff --git a/LayoutTests/platform/mac/fast/repaint/repaint-across-writing-mode-boundary-expected.txt b/LayoutTests/platform/mac/fast/repaint/repaint-across-writing-mode-boundary-expected.txt
new file mode 100644
index 0000000..1e6d937
--- /dev/null
+++ b/LayoutTests/platform/mac/fast/repaint/repaint-across-writing-mode-boundary-expected.txt
@@ -0,0 +1,22 @@
+layer at (0,0) size 800x600
+  RenderView at (0,0) size 800x600
+layer at (0,0) size 800x377
+  RenderBlock {HTML} at (0,0) size 800x377
+    RenderBody {BODY} at (50,50) size 700x277
+      RenderBlock {DIV} at (0,0) size 556x277 [bgcolor=#EEEEEE]
+        RenderBlock {DIV} at (1,1) size 277x129 [bgcolor=#FFEEEE]
+          RenderBlock {P} at (14,28) size 249x23 [bgcolor=#FFAAAA] [border: (20px solid #FF8888) none (20px solid #FF8888)]
+            RenderText {#text} at (21,1) size 181x23
+              text run at (21,1) width 181: "\x{7B2C}\x{4E00}\x{6BB5}\x{843D} paragraph 1"
+          RenderBlock {P} at (14,78) size 249x23 [bgcolor=#FFAAAA] [border: (20px solid #FF8888) none (20px solid #FF8888)]
+            RenderText {#text} at (21,1) size 181x23
+              text run at (21,1) width 181: "\x{7B2C}\x{4E8C}\x{6BB5}\x{843D} paragraph 2"
+        RenderBlock {DIV} at (278,1) size 277x275 [bgcolor=#FFFFEE]
+          RenderBlock {P} at (14,28) size 63x219 [bgcolor=#FFAAAA] [border: (20px solid #FF8888) none (20px solid #FF8888)]
+            RenderText {#text} at (21,1) size 23x185
+              text run at (21,1) width 185: "\x{7B2C}\x{4E00}\x{6BB5}\x{843D} paragraph 1"
+          RenderBlock {P} at (90,28) size 63x219 [bgcolor=#FFAAAA] [border: (20px solid #FF8888) none (20px solid #FF8888)]
+            RenderText {#text} at (21,1) size 23x185
+              text run at (21,1) width 185: "\x{7B2C}\x{4E8C}\x{6BB5}\x{843D} paragraph 2"
+selection start: position 8 of child 0 {#text} of child 0 {P} of child 3 {DIV} of child 1 {DIV} of body
+selection end:   position 12 of child 0 {#text} of child 0 {P} of child 3 {DIV} of child 1 {DIV} of body
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index d9ddb7c..173b4cc 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,5 +1,19 @@
 2010-11-13  David Hyatt  <hyatt at apple.com>
 
+        Reviewed by Anders Carlsson.
+
+        https://bugs.webkit.org/show_bug.cgi?id=49506
+
+        Repaint is broken across writing mode boundaries.  It's not enough to add in flipped offsets.  You have
+        to flip the rect itself.
+
+        Added fast/repaint/repaint-across-writing-mode-boundary.html
+
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::computeRectForRepaint):
+
+2010-11-13  David Hyatt  <hyatt at apple.com>
+
         Reviewed by Dan Bernstein.
 
         https://bugs.webkit.org/show_bug.cgi?id=49505
diff --git a/WebCore/rendering/RenderBox.cpp b/WebCore/rendering/RenderBox.cpp
index 2286ca7..6b166a2 100644
--- a/WebCore/rendering/RenderBox.cpp
+++ b/WebCore/rendering/RenderBox.cpp
@@ -1379,11 +1379,10 @@ void RenderBox::computeRectForRepaint(RenderBoxModelObject* repaintContainer, In
     if (!o)
         return;
 
-    IntPoint topLeft = rect.location();
     if (isWritingModeRoot() && !isPositioned())
-        topLeft.move(locationOffsetIncludingFlipping());
-    else
-        topLeft.move(x(), y());
+        flipForWritingMode(rect);
+    IntPoint topLeft = rect.location();
+    topLeft.move(x(), y());
 
     EPosition position = style()->position();
 
@@ -1393,10 +1392,7 @@ void RenderBox::computeRectForRepaint(RenderBoxModelObject* repaintContainer, In
         fixed = position == FixedPosition;
         rect = layer()->transform()->mapRect(rect);
         topLeft = rect.location();
-        if (isWritingModeRoot() && !isPositioned())
-            topLeft.move(locationOffsetIncludingFlipping());
-        else
-            topLeft.move(x(), y());
+        topLeft.move(x(), y());
     } else if (position == FixedPosition)
         fixed = true;
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list