Title: [123835] trunk
Revision
123835
Author
[email protected]
Date
2012-07-26 20:48:18 -0700 (Thu, 26 Jul 2012)

Log Message

Blocks with reverse column progression don’t have layout overflow for overflowing columns
https://bugs.webkit.org/show_bug.cgi?id=92440

Reviewed by Sam Weinig.

Source/WebCore: 

Test: fast/multicol/progression-reverse-overflow.html

* rendering/RenderBox.cpp:
(WebCore::RenderBox::addLayoutOverflow): If column progression is reversed, then allow
layout overflow to go in the opposite direction than it would normally be allowed to go.
For example, in a block with writing-mode: horizontal-tb, direction: ltr and
column-progression: reverse, columns overflow to the left, so layout overflow would go on
the left.

LayoutTests: 

* fast/multicol/progression-reverse-overflow-expected.html: Added.
* fast/multicol/progression-reverse-overflow.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (123834 => 123835)


--- trunk/LayoutTests/ChangeLog	2012-07-27 03:24:09 UTC (rev 123834)
+++ trunk/LayoutTests/ChangeLog	2012-07-27 03:48:18 UTC (rev 123835)
@@ -1,3 +1,13 @@
+2012-07-26  Dan Bernstein  <[email protected]>
+
+        Blocks with reverse column progression don’t have layout overflow for overflowing columns
+        https://bugs.webkit.org/show_bug.cgi?id=92440
+
+        Reviewed by Sam Weinig.
+
+        * fast/multicol/progression-reverse-overflow-expected.html: Added.
+        * fast/multicol/progression-reverse-overflow.html: Added.
+
 2012-07-26  Sukolsak Sakshuwong  <[email protected]>
 
         Implement undoscope attribute.

Added: trunk/LayoutTests/fast/multicol/progression-reverse-overflow-expected.html (0 => 123835)


--- trunk/LayoutTests/fast/multicol/progression-reverse-overflow-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/multicol/progression-reverse-overflow-expected.html	2012-07-27 03:48:18 UTC (rev 123835)
@@ -0,0 +1,53 @@
+<style>
+    div.test {
+        width: 100px;
+        height: 100px;
+        -webkit-column-width: 100px;
+        -webkit-column-gap: 0;
+        overflow: hidden;
+    }
+
+    div.test > div {
+        -webkit-logical-height: 100%;
+    }
+
+    div.test > div:first-child {
+        background-color: red;
+    }
+
+    div.test > div:last-child {
+        background-color: green;
+    }
+</style>
+<div class="test" style="direction: rtl;">
+    <div></div><div></div>
+</div>
+<div class="test">
+    <div></div><div></div>
+</div>
+<div class="test" style="direction: rtl;">
+    <div></div><div></div>
+</div>
+<div class="test" style="-webkit-writing-mode: vertical-lr; direction: rtl;">
+    <div></div><div></div>
+</div>
+<div class="test" style="-webkit-writing-mode: vertical-lr; direction: rtl;">
+    <div></div><div></div>
+</div>
+<div class="test" style="direction: rtl;">
+    <div></div><div></div>
+</div>
+<script>
+    var tests = document.querySelectorAll("div.test");
+    for (var i = 0; i < tests.length; ++i) {
+        var test = tests[i];
+        if (test.scrollLeft)
+            test.scrollLeft = 0;
+        else
+            test.scrollLeft = test.scrollWidth;
+        if (test.scrollTop)
+            test.scrollTop = 0;
+        else
+            test.scrollTop = test.scrollHeight;
+    }
+</script>

Added: trunk/LayoutTests/fast/multicol/progression-reverse-overflow.html (0 => 123835)


--- trunk/LayoutTests/fast/multicol/progression-reverse-overflow.html	                        (rev 0)
+++ trunk/LayoutTests/fast/multicol/progression-reverse-overflow.html	2012-07-27 03:48:18 UTC (rev 123835)
@@ -0,0 +1,52 @@
+<style>
+    div.test {
+        width: 100px;
+        height: 100px;
+        -webkit-column-width: 100px;
+        -webkit-column-gap: 0;
+        -webkit-column-progression: reverse;
+        overflow: hidden;
+    }
+
+    div.test > div {
+        -webkit-logical-height: 100%;
+    }
+
+    div.test > div:first-child {
+        background-color: red;
+    }
+
+    div.test > div:last-child {
+        background-color: green;
+    }
+</style>
+<div class="test">
+    <div></div><div></div>
+</div>
+<div class="test" style="direction: rtl;">
+    <div></div><div></div>
+</div>
+<div class="test" style="-webkit-writing-mode: horizontal-bt;">
+    <div></div><div></div>
+</div>
+<div class="test" style="-webkit-writing-mode: vertical-lr;">
+    <div></div><div></div>
+</div>
+<div class="test" style="-webkit-column-axis: vertical;">
+    <div></div><div></div>
+</div>
+<div class="test" style="-webkit-writing-mode: vertical-lr; -webkit-column-axis: horizontal;">
+    <div></div><div></div>
+</div>
+<script>
+    var tests = document.querySelectorAll("div.test");
+    for (var i = 0; i < tests.length; ++i) {
+        var test = tests[i];
+        if (test.scrollLeft)
+            test.scrollLeft = 0;
+        else
+            test.scrollLeft = test.scrollWidth;
+        if (test.scrollTop)
+            test.scrollTop = 0;
+    }
+</script>

Modified: trunk/Source/WebCore/ChangeLog (123834 => 123835)


--- trunk/Source/WebCore/ChangeLog	2012-07-27 03:24:09 UTC (rev 123834)
+++ trunk/Source/WebCore/ChangeLog	2012-07-27 03:48:18 UTC (rev 123835)
@@ -1,3 +1,19 @@
+2012-07-26  Dan Bernstein  <[email protected]>
+
+        Blocks with reverse column progression don’t have layout overflow for overflowing columns
+        https://bugs.webkit.org/show_bug.cgi?id=92440
+
+        Reviewed by Sam Weinig.
+
+        Test: fast/multicol/progression-reverse-overflow.html
+
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::addLayoutOverflow): If column progression is reversed, then allow
+        layout overflow to go in the opposite direction than it would normally be allowed to go.
+        For example, in a block with writing-mode: horizontal-tb, direction: ltr and
+        column-progression: reverse, columns overflow to the left, so layout overflow would go on
+        the left.
+
 2012-07-26  Keishi Hattori  <[email protected]>
 
         Implement ColorSuggestionPicker page popup

Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (123834 => 123835)


--- trunk/Source/WebCore/rendering/RenderBox.cpp	2012-07-27 03:24:09 UTC (rev 123834)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp	2012-07-27 03:48:18 UTC (rev 123835)
@@ -3634,7 +3634,14 @@
             else
                 hasTopOverflow = true;
         }
-        
+
+        if (hasColumns() && style()->columnProgression() == ReverseColumnProgression) {
+            if (isHorizontalWritingMode() ^ !style()->hasInlineColumnAxis())
+                hasLeftOverflow = !hasLeftOverflow;
+            else
+                hasTopOverflow = !hasTopOverflow;
+        }
+
         if (!hasTopOverflow)
             overflowRect.shiftYEdgeTo(max(overflowRect.y(), clientBox.y()));
         else
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to