Certain column-rule styles render incorrectly in vertical writing modes
authormitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 18 Oct 2011 22:14:00 +0000 (22:14 +0000)
committermitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 18 Oct 2011 22:14:00 +0000 (22:14 +0000)
https://bugs.webkit.org/show_bug.cgi?id=70362

Reviewed by Darin Adler.

Source/WebCore:

Test: fast/multicol/vertical-rl/rule-style.html

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintColumnRules): Use the correct border sides for vertical writing modes.

LayoutTests:

* fast/multicol/vertical-rl/rule-style-expected.png: Added.
* fast/multicol/vertical-rl/rule-style-expected.txt: Added.
* fast/multicol/vertical-rl/rule-style.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@97794 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/fast/multicol/vertical-rl/rule-style-expected.png [new file with mode: 0644]
LayoutTests/fast/multicol/vertical-rl/rule-style-expected.txt [new file with mode: 0644]
LayoutTests/fast/multicol/vertical-rl/rule-style.html [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/rendering/RenderBlock.cpp

index 38d254181757be8ad3ab157495fe222b372fe159..03018f412a4600f9736569cfccee6a723d90e99d 100644 (file)
@@ -1,3 +1,14 @@
+2011-10-18  Dan Bernstein  <mitz@apple.com>
+
+        Certain column-rule styles render incorrectly in vertical writing modes
+        https://bugs.webkit.org/show_bug.cgi?id=70362
+
+        Reviewed by Darin Adler.
+
+        * fast/multicol/vertical-rl/rule-style-expected.png: Added.
+        * fast/multicol/vertical-rl/rule-style-expected.txt: Added.
+        * fast/multicol/vertical-rl/rule-style.html: Added.
+
 2011-10-18  Gavin Barraclough  <barraclough@apple.com>
 
         Array.prototype methods missing exception checks
diff --git a/LayoutTests/fast/multicol/vertical-rl/rule-style-expected.png b/LayoutTests/fast/multicol/vertical-rl/rule-style-expected.png
new file mode 100644 (file)
index 0000000..f3f4623
Binary files /dev/null and b/LayoutTests/fast/multicol/vertical-rl/rule-style-expected.png differ
diff --git a/LayoutTests/fast/multicol/vertical-rl/rule-style-expected.txt b/LayoutTests/fast/multicol/vertical-rl/rule-style-expected.txt
new file mode 100644 (file)
index 0000000..ba35a04
--- /dev/null
@@ -0,0 +1,44 @@
+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
+      RenderText {#text} at (186,20) size 18x4
+        text run at (186,20) width 4: " "
+      RenderText {#text} at (186,44) size 18x4
+        text run at (186,44) width 4: " "
+      RenderText {#text} at (186,68) size 18x4
+        text run at (186,68) width 4: " "
+      RenderText {#text} at (186,92) size 18x4
+        text run at (186,92) width 4: " "
+      RenderText {#text} at (186,116) size 18x4
+        text run at (186,116) width 4: " "
+      RenderText {#text} at (186,140) size 18x4
+        text run at (186,140) width 4: " "
+      RenderText {#text} at (186,164) size 18x4
+        text run at (186,164) width 4: " "
+      RenderText {#text} at (0,0) size 0x0
+layer at (592,8) size 200x20
+  RenderBlock {DIV} at (0,0) size 200x20
+    RenderBlock {DIV} at (0,0) size 400x2
+layer at (592,32) size 200x20
+  RenderBlock {DIV} at (0,24) size 200x20
+    RenderBlock {DIV} at (0,0) size 400x2
+layer at (592,56) size 200x20
+  RenderBlock {DIV} at (0,48) size 200x20
+    RenderBlock {DIV} at (0,0) size 400x2
+layer at (592,80) size 200x20
+  RenderBlock {DIV} at (0,72) size 200x20
+    RenderBlock {DIV} at (0,0) size 400x2
+layer at (592,104) size 200x20
+  RenderBlock {DIV} at (0,96) size 200x20
+    RenderBlock {DIV} at (0,0) size 400x2
+layer at (592,128) size 200x20
+  RenderBlock {DIV} at (0,120) size 200x20
+    RenderBlock {DIV} at (0,0) size 400x2
+layer at (592,152) size 200x20
+  RenderBlock {DIV} at (0,144) size 200x20
+    RenderBlock {DIV} at (0,0) size 400x2
+layer at (592,176) size 200x20
+  RenderBlock {DIV} at (0,168) size 200x20
+    RenderBlock {DIV} at (0,0) size 400x2
diff --git a/LayoutTests/fast/multicol/vertical-rl/rule-style.html b/LayoutTests/fast/multicol/vertical-rl/rule-style.html
new file mode 100644 (file)
index 0000000..c0b40fc
--- /dev/null
@@ -0,0 +1,50 @@
+<style>
+    body {
+        -webkit-writing-mode: vertical-rl;
+    }
+
+    div.columns {
+        -webkit-columns: 2;
+        width: 200px;
+        height: 20px;
+        -webkit-column-rule-color: gray;
+        -webkit-column-rule-width: 12px;
+        display: inline-block;
+    }
+
+    div.columns div {
+        width: 400px;
+    }
+</style>
+
+<div class="columns" style="-webkit-column-rule-style: solid;">
+    <div></div>
+</div>
+
+<div class="columns" style="-webkit-column-rule-style: dotted;">
+    <div></div>
+</div>
+
+<div class="columns" style="-webkit-column-rule-style: dashed;">
+    <div></div>
+</div>
+
+<div class="columns" style="-webkit-column-rule-style: groove;">
+    <div></div>
+</div>
+
+<div class="columns" style="-webkit-column-rule-style: ridge;">
+    <div></div>
+</div>
+
+<div class="columns" style="-webkit-column-rule-style: inset;">
+    <div></div>
+</div>
+
+<div class="columns" style="-webkit-column-rule-style: outset;">
+    <div></div>
+</div>
+
+<div class="columns" style="-webkit-column-rule-style: double;">
+    <div></div>
+</div>
index 4dfb61ea487b22854962f4cc9a5a53eec8cb8f3d..9313453ceaf79917f47f68a5de3dd601f8e28163 100644 (file)
@@ -1,3 +1,15 @@
+2011-10-18  Dan Bernstein  <mitz@apple.com>
+
+        Certain column-rule styles render incorrectly in vertical writing modes
+        https://bugs.webkit.org/show_bug.cgi?id=70362
+
+        Reviewed by Darin Adler.
+
+        Test: fast/multicol/vertical-rl/rule-style.html
+
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::paintColumnRules): Use the correct border sides for vertical writing modes.
+
 2011-10-18  Anna Cavender  <annacc@chromium.org>
 
         Fix broken binding tests by changing G_MAXUSHORT to G_MAXUINT in WebKitDOMTestObj.cpp.
index 345d2e3d3047476e80fa903d95f164aaaeee67fc..fb3971423f1579ff4525b80180b3d7a39da46602 100644 (file)
@@ -2416,8 +2416,10 @@ void RenderBlock::paintColumnRules(PaintInfo& paintInfo, const LayoutPoint& pain
             LayoutUnit ruleRight = isHorizontalWritingMode() ? ruleLeft + ruleWidth : ruleLeft + contentWidth();
             LayoutUnit ruleTop = isHorizontalWritingMode() ? paintOffset.y() + borderTop() + paddingTop() : paintOffset.y() + ruleLogicalLeft - ruleWidth / 2 + ruleAdd;
             LayoutUnit ruleBottom = isHorizontalWritingMode() ? ruleTop + contentHeight() : ruleTop + ruleWidth;
-            drawLineForBoxSide(paintInfo.context, ruleLeft, ruleTop, ruleRight, ruleBottom,
-                               style()->isLeftToRightDirection() ? BSLeft : BSRight, ruleColor, ruleStyle, 0, 0, antialias);
+            BoxSide side = isHorizontalWritingMode()
+                ? style()->isLeftToRightDirection() ? BSLeft : BSRight
+                : style()->isLeftToRightDirection() ? BSTop : BSBottom;
+            drawLineForBoxSide(paintInfo.context, ruleLeft, ruleTop, ruleRight, ruleBottom, side, ruleColor, ruleStyle, 0, 0, antialias);
         }
         
         ruleLogicalLeft = currLogicalLeftOffset;