[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