Title: [94092] trunk
Revision
94092
Author
[email protected]
Date
2011-08-30 11:28:51 -0700 (Tue, 30 Aug 2011)

Log Message

<rdar://problem/10002140> 9A309: Text gets clipped in book because of overflow:auto
        
https://bugs.webkit.org/show_bug.cgi?id=67212 - Text gets clipped in multi-column layouts when overflow:auto
is used.
        
Revise our overflow:auto pagination behavior. If the overflow block doesn't specify any logical height
information, then we'll just assume the plan is for it to enclose its contents, and we will be willing
to paginate in those circumstances.

Reviewed by Dan Bernstein.

Added overflow-across-columns.html and overflow-unsplittable.html

Source/WebCore: 

* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::adjustForUnsplittableChild):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::hasUnsplittableScrollingOverflow):
* rendering/RenderBox.h:

LayoutTests: 

* fast/multicol/overflow-across-columns.html: Added.
* fast/multicol/overflow-unsplittable.html: Added.
* platform/mac/fast/multicol/overflow-across-columns-expected.png: Added.
* platform/mac/fast/multicol/overflow-across-columns-expected.txt: Added.
* platform/mac/fast/multicol/overflow-unsplittable-expected.png: Added.
* platform/mac/fast/multicol/overflow-unsplittable-expected.txt: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (94091 => 94092)


--- trunk/LayoutTests/ChangeLog	2011-08-30 17:58:54 UTC (rev 94091)
+++ trunk/LayoutTests/ChangeLog	2011-08-30 18:28:51 UTC (rev 94092)
@@ -1,3 +1,25 @@
+2011-08-30  David Hyatt  <[email protected]>
+
+        <rdar://problem/10002140> 9A309: Text gets clipped in book because of overflow:auto
+        
+        https://bugs.webkit.org/show_bug.cgi?id=67212 - Text gets clipped in multi-column layouts when overflow:auto
+        is used.
+        
+        Revise our overflow:auto pagination behavior. If the overflow block doesn't specify any logical height
+        information, then we'll just assume the plan is for it to enclose its contents, and we will be willing
+        to paginate in those circumstances.
+
+        Reviewed by Dan Bernstein.
+
+        Added overflow-across-columns.html and overflow-unsplittable.html
+
+        * fast/multicol/overflow-across-columns.html: Added.
+        * fast/multicol/overflow-unsplittable.html: Added.
+        * platform/mac/fast/multicol/overflow-across-columns-expected.png: Added.
+        * platform/mac/fast/multicol/overflow-across-columns-expected.txt: Added.
+        * platform/mac/fast/multicol/overflow-unsplittable-expected.png: Added.
+        * platform/mac/fast/multicol/overflow-unsplittable-expected.txt: Added.
+
 2011-08-30  Sheriff Bot  <[email protected]>
 
         Unreviewed, rolling out r93924.

Added: trunk/LayoutTests/fast/multicol/overflow-across-columns.html (0 => 94092)


--- trunk/LayoutTests/fast/multicol/overflow-across-columns.html	                        (rev 0)
+++ trunk/LayoutTests/fast/multicol/overflow-across-columns.html	2011-08-30 18:28:51 UTC (rev 94092)
@@ -0,0 +1,25 @@
+<div style="text-align: justify; text-decoration: underline; border: solid; width: 500px; -webkit-columns: 3; -moz-column-count: 3; font-size: 12px; line-height: 2; height: 499px;">
+<div style="overflow:auto">
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam ornare, nunc eget condimentum tempor,
+augue ligula accumsan eros, sed consequat sapien orci id libero. Curabitur tristique, augue in aliquet
+accumsan, nibh nisi lobortis odio, et suscipit est ligula eu nisi. Nunc aliquet lobortis porta. Donec
+venenatis consectetur eleifend. Etiam sed tempor quam. Pellentesque gravida gravida eros venenatis
+suscipit. Aenean diam enim, suscipit id pellentesque vel, hendrerit et metus. Suspendisse felis erat,
+hendrerit a congue in, euismod ac erat. Donec pulvinar venenatis tortor, a lobortis erat scelerisque
+et. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
+Aliquam in orci id felis mollis porta ac et orci. Donec viverra, eros ac mattis dapibus, quam ante
+porta lectus, accumsan pellentesque nibh metus non felis. Vivamus sed eros quis magna scelerisque
+ultrices ac eget velit.
+
+Nunc et odio ut velit posuere viverra. Integer eu mi quis velit dapibus tempus at ut purus. Quisque
+congue mollis mauris a hendrerit. Nam viverra est at orci interdum a ullamcorper mi dictum. In id
+sapien augue. Suspendisse potenti. Vestibulum turpis purus, convallis ut sagittis quis, semper vel
+mauris. Curabitur vitae felis turpis. Fusce augue nibh, consectetur non vestibulum et, bibendum sit
+amet lectus. Nulla at imperdiet metus. Donec non est velit, non fringilla ipsum. Fusce elementum neque
+a nibh egestas sodales. Mauris ut lorem hendrerit metus interdum malesuada. Nam tempus sodales neque
+vitae bibendum. Vestibulum ac est sit amet dolor vehicula semper at sed ante. Nunc at neque urna, in
+volutpat orci. Praesent eu velit neque, quis rutrum metus. Nunc eu ipsum sit amet ligula mattis
+porttitor sit amet id felis. Integer volutpat aliquam odio et feugiat.
+
+</div>
+</div>

Added: trunk/LayoutTests/fast/multicol/overflow-unsplittable.html (0 => 94092)


--- trunk/LayoutTests/fast/multicol/overflow-unsplittable.html	                        (rev 0)
+++ trunk/LayoutTests/fast/multicol/overflow-unsplittable.html	2011-08-30 18:28:51 UTC (rev 94092)
@@ -0,0 +1,27 @@
+<div style="text-align: justify; text-decoration: underline; border: solid; width: 500px; -webkit-columns: 3; -moz-column-count: 3; font-size: 12px; line-height: 2; height: 499px;">
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam ornare, nunc eget condimentum tempor,
+augue ligula accumsan eros, sed consequat sapien orci id libero. Curabitur tristique, augue in aliquet
+accumsan, nibh nisi lobortis odio, et suscipit est ligula eu nisi. Nunc aliquet lobortis porta. Donec
+venenatis consectetur eleifend. Etiam sed tempor quam. Pellentesque gravida gravida eros venenatis
+suscipit. 
+
+<div style="overflow:auto;height:300px;width:98%; border:2px solid black;">Aenean diam enim, suscipit id pellentesque vel, hendrerit et metus. Suspendisse felis erat,
+hendrerit a congue in, euismod ac erat. Donec pulvinar venenatis tortor, a lobortis erat scelerisque
+et. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
+Aliquam in orci id felis mollis porta ac et orci. Donec viverra, eros ac mattis dapibus, quam ante
+porta lectus, accumsan pellentesque nibh metus non felis. Vivamus sed eros quis magna scelerisque
+ultrices ac eget velit.
+</div>
+
+Nunc et odio ut velit posuere viverra. Integer eu mi quis velit dapibus tempus at ut purus. Quisque
+congue mollis mauris a hendrerit. Nam viverra est at orci interdum a ullamcorper mi dictum. In id
+sapien augue. Suspendisse potenti. Vestibulum turpis purus, convallis ut sagittis quis, semper vel
+mauris. Curabitur vitae felis turpis. Fusce augue nibh, consectetur non vestibulum et, bibendum sit
+amet lectus. Nulla at imperdiet metus. Donec non est velit, non fringilla ipsum. Fusce elementum neque
+a nibh egestas sodales. Mauris ut lorem hendrerit metus interdum malesuada. Nam tempus sodales neque
+vitae bibendum. Vestibulum ac est sit amet dolor vehicula semper at sed ante. Nunc at neque urna, in
+volutpat orci. Praesent eu velit neque, quis rutrum metus. Nunc eu ipsum sit amet ligula mattis
+porttitor sit amet id felis. Integer volutpat aliquam odio et feugiat.
+
+</div>
+</div>

Added: trunk/LayoutTests/platform/mac/fast/multicol/overflow-across-columns-expected.png


(Binary files differ)
Property changes on: trunk/LayoutTests/platform/mac/fast/multicol/overflow-across-columns-expected.png ___________________________________________________________________

Added: svn:mime-type

Added: trunk/LayoutTests/platform/mac/fast/multicol/overflow-across-columns-expected.txt (0 => 94092)


--- trunk/LayoutTests/platform/mac/fast/multicol/overflow-across-columns-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/mac/fast/multicol/overflow-across-columns-expected.txt	2011-08-30 18:28:51 UTC (rev 94092)
@@ -0,0 +1,70 @@
+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 506x505
+  RenderBlock {DIV} at (0,0) size 506x505 [border: (3px solid #000000)]
+layer at (11,11) size 158x1454 backgroundClip at (11,11) size 158x589 clip at (11,11) size 158x589 outlineClip at (0,0) size 800x600
+  RenderBlock {DIV} at (3,3) size 158x1454
+    RenderText {#text} at (0,5) size 158x1444
+      text run at (0,5) width 158: "Lorem ipsum dolor sit amet,"
+      text run at (0,29) width 158: "consectetur adipiscing elit."
+      text run at (0,53) width 158: "Nullam ornare, nunc eget"
+      text run at (0,77) width 158: "condimentum tempor, augue"
+      text run at (0,101) width 158: "ligula accumsan eros, sed"
+      text run at (0,125) width 158: "consequat sapien orci id libero."
+      text run at (0,149) width 158: "Curabitur tristique, augue in"
+      text run at (0,173) width 158: "aliquet accumsan, nibh nisi"
+      text run at (0,197) width 158: "lobortis odio, et suscipit est ligula"
+      text run at (0,221) width 158: "eu nisi. Nunc aliquet lobortis"
+      text run at (0,245) width 158: "porta. Donec venenatis"
+      text run at (0,269) width 158: "consectetur eleifend. Etiam sed"
+      text run at (0,293) width 158: "tempor quam. Pellentesque"
+      text run at (0,317) width 158: "gravida gravida eros venenatis"
+      text run at (0,341) width 158: "suscipit. Aenean diam enim,"
+      text run at (0,365) width 158: "suscipit id pellentesque vel,"
+      text run at (0,389) width 158: "hendrerit et metus. Suspendisse"
+      text run at (0,413) width 158: "felis erat, hendrerit a congue in,"
+      text run at (0,437) width 158: "euismod ac erat. Donec pulvinar"
+      text run at (0,461) width 158: "venenatis tortor, a lobortis erat"
+      text run at (0,504) width 158: "scelerisque et. Class aptent taciti"
+      text run at (0,528) width 158: "sociosqu ad litora torquent per"
+      text run at (0,552) width 158: "conubia nostra, per inceptos"
+      text run at (0,576) width 158: "himenaeos. Aliquam in orci id"
+      text run at (0,600) width 158: "felis mollis porta ac et orci."
+      text run at (0,624) width 158: "Donec viverra, eros ac mattis"
+      text run at (0,648) width 158: "dapibus, quam ante porta lectus,"
+      text run at (0,672) width 158: "accumsan pellentesque nibh"
+      text run at (0,696) width 158: "metus non felis. Vivamus sed"
+      text run at (0,720) width 158: "eros quis magna scelerisque"
+      text run at (0,744) width 116: "ultrices ac eget velit. "
+      text run at (116,744) width 42: "Nunc et"
+      text run at (0,768) width 158: "odio ut velit posuere viverra."
+      text run at (0,792) width 158: "Integer eu mi quis velit dapibus"
+      text run at (0,816) width 158: "tempus at ut purus. Quisque"
+      text run at (0,840) width 158: "congue mollis mauris a hendrerit."
+      text run at (0,864) width 158: "Nam viverra est at orci interdum"
+      text run at (0,888) width 158: "a ullamcorper mi dictum. In id"
+      text run at (0,912) width 158: "sapien augue. Suspendisse"
+      text run at (0,936) width 158: "potenti. Vestibulum turpis purus,"
+      text run at (0,960) width 158: "convallis ut sagittis quis, semper"
+      text run at (0,1003) width 158: "vel mauris. Curabitur vitae felis"
+      text run at (0,1027) width 158: "turpis. Fusce augue nibh,"
+      text run at (0,1051) width 158: "consectetur non vestibulum et,"
+      text run at (0,1075) width 158: "bibendum sit amet lectus. Nulla"
+      text run at (0,1099) width 158: "at imperdiet metus. Donec non"
+      text run at (0,1123) width 158: "est velit, non fringilla ipsum."
+      text run at (0,1147) width 158: "Fusce elementum neque a nibh"
+      text run at (0,1171) width 158: "egestas sodales. Mauris ut lorem"
+      text run at (0,1195) width 158: "hendrerit metus interdum"
+      text run at (0,1219) width 158: "malesuada. Nam tempus sodales"
+      text run at (0,1243) width 158: "neque vitae bibendum."
+      text run at (0,1267) width 158: "Vestibulum ac est sit amet dolor"
+      text run at (0,1291) width 158: "vehicula semper at sed ante."
+      text run at (0,1315) width 158: "Nunc at neque urna, in volutpat"
+      text run at (0,1339) width 158: "orci. Praesent eu velit neque, quis"
+      text run at (0,1363) width 158: "rutrum metus. Nunc eu ipsum sit"
+      text run at (0,1387) width 158: "amet ligula mattis porttitor sit"
+      text run at (0,1411) width 158: "amet id felis. Integer volutpat"
+      text run at (0,1435) width 110: "aliquam odio et feugiat."

Added: trunk/LayoutTests/platform/mac/fast/multicol/overflow-unsplittable-expected.png


(Binary files differ)
Property changes on: trunk/LayoutTests/platform/mac/fast/multicol/overflow-unsplittable-expected.png ___________________________________________________________________

Added: svn:mime-type

Added: trunk/LayoutTests/platform/mac/fast/multicol/overflow-unsplittable-expected.txt (0 => 94092)


--- trunk/LayoutTests/platform/mac/fast/multicol/overflow-unsplittable-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/mac/fast/multicol/overflow-unsplittable-expected.txt	2011-08-30 18:28:51 UTC (rev 94092)
@@ -0,0 +1,76 @@
+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 506x505
+  RenderBlock {DIV} at (0,0) size 506x505 [border: (3px solid #000000)]
+    RenderBlock (anonymous) at (3,3) size 158x360
+      RenderText {#text} at (0,5) size 158x350
+        text run at (0,5) width 158: "Lorem ipsum dolor sit amet,"
+        text run at (0,29) width 158: "consectetur adipiscing elit."
+        text run at (0,53) width 158: "Nullam ornare, nunc eget"
+        text run at (0,77) width 158: "condimentum tempor, augue"
+        text run at (0,101) width 158: "ligula accumsan eros, sed"
+        text run at (0,125) width 158: "consequat sapien orci id libero."
+        text run at (0,149) width 158: "Curabitur tristique, augue in"
+        text run at (0,173) width 158: "aliquet accumsan, nibh nisi"
+        text run at (0,197) width 158: "lobortis odio, et suscipit est ligula"
+        text run at (0,221) width 158: "eu nisi. Nunc aliquet lobortis"
+        text run at (0,245) width 158: "porta. Donec venenatis"
+        text run at (0,269) width 158: "consectetur eleifend. Etiam sed"
+        text run at (0,293) width 158: "tempor quam. Pellentesque"
+        text run at (0,317) width 158: "gravida gravida eros venenatis"
+        text run at (0,341) width 39: "suscipit."
+    RenderBlock (anonymous) at (3,806) size 158x675
+      RenderText {#text} at (0,5) size 158x665
+        text run at (0,5) width 158: "Nunc et odio ut velit posuere"
+        text run at (0,29) width 158: "viverra. Integer eu mi quis velit"
+        text run at (0,53) width 158: "dapibus tempus at ut purus."
+        text run at (0,77) width 158: "Quisque congue mollis mauris a"
+        text run at (0,101) width 158: "hendrerit. Nam viverra est at orci"
+        text run at (0,125) width 158: "interdum a ullamcorper mi"
+        text run at (0,149) width 158: "dictum. In id sapien augue."
+        text run at (0,173) width 158: "Suspendisse potenti. Vestibulum"
+        text run at (0,200) width 158: "turpis purus, convallis ut sagittis"
+        text run at (0,224) width 158: "quis, semper vel mauris."
+        text run at (0,248) width 158: "Curabitur vitae felis turpis. Fusce"
+        text run at (0,272) width 158: "augue nibh, consectetur non"
+        text run at (0,296) width 158: "vestibulum et, bibendum sit amet"
+        text run at (0,320) width 158: "lectus. Nulla at imperdiet metus."
+        text run at (0,344) width 158: "Donec non est velit, non fringilla"
+        text run at (0,368) width 158: "ipsum. Fusce elementum neque a"
+        text run at (0,392) width 158: "nibh egestas sodales. Mauris ut"
+        text run at (0,416) width 158: "lorem hendrerit metus interdum"
+        text run at (0,440) width 158: "malesuada. Nam tempus sodales"
+        text run at (0,464) width 158: "neque vitae bibendum."
+        text run at (0,488) width 158: "Vestibulum ac est sit amet dolor"
+        text run at (0,512) width 158: "vehicula semper at sed ante."
+        text run at (0,536) width 158: "Nunc at neque urna, in volutpat"
+        text run at (0,560) width 158: "orci. Praesent eu velit neque, quis"
+        text run at (0,584) width 158: "rutrum metus. Nunc eu ipsum sit"
+        text run at (0,608) width 158: "amet ligula mattis porttitor sit"
+        text run at (0,632) width 158: "amet id felis. Integer volutpat"
+        text run at (0,656) width 110: "aliquam odio et feugiat."
+layer at (11,510) size 158x304 backgroundClip at (11,510) size 158x90 clip at (13,512) size 139x88 outlineClip at (0,0) size 800x600 scrollHeight 456
+  RenderBlock {DIV} at (3,502) size 158x304 [border: (2px solid #000000)]
+    RenderText {#text} at (2,7) size 139x446
+      text run at (2,7) width 139: "Aenean diam enim, suscipit"
+      text run at (2,31) width 139: "id pellentesque vel, hendrerit"
+      text run at (2,55) width 139: "et metus. Suspendisse felis"
+      text run at (2,79) width 139: "erat, hendrerit a congue in,"
+      text run at (2,103) width 139: "euismod ac erat. Donec"
+      text run at (2,127) width 139: "pulvinar venenatis tortor, a"
+      text run at (2,151) width 139: "lobortis erat scelerisque et."
+      text run at (2,175) width 139: "Class aptent taciti sociosqu"
+      text run at (2,199) width 139: "ad litora torquent per conubia"
+      text run at (2,223) width 139: "nostra, per inceptos"
+      text run at (2,247) width 139: "himenaeos. Aliquam in orci"
+      text run at (2,271) width 139: "id felis mollis porta ac et orci."
+      text run at (2,295) width 139: "Donec viverra, eros ac mattis"
+      text run at (2,319) width 139: "dapibus, quam ante porta"
+      text run at (2,343) width 139: "lectus, accumsan"
+      text run at (2,367) width 139: "pellentesque nibh metus non"
+      text run at (2,391) width 139: "felis. Vivamus sed eros quis"
+      text run at (2,415) width 139: "magna scelerisque ultrices ac"
+      text run at (2,439) width 45: "eget velit."

Modified: trunk/Source/WebCore/ChangeLog (94091 => 94092)


--- trunk/Source/WebCore/ChangeLog	2011-08-30 17:58:54 UTC (rev 94091)
+++ trunk/Source/WebCore/ChangeLog	2011-08-30 18:28:51 UTC (rev 94092)
@@ -1,3 +1,26 @@
+2011-08-30  David Hyatt  <[email protected]>
+
+        <rdar://problem/10002140> 9A309: Text gets clipped in book because of overflow:auto
+        
+        https://bugs.webkit.org/show_bug.cgi?id=67212 - Text gets clipped in multi-column layouts when overflow:auto
+        is used.
+        
+        Revise our overflow:auto pagination behavior. If the overflow block doesn't specify any logical height
+        information, then we'll just assume the plan is for it to enclose its contents, and we will be willing
+        to paginate in those circumstances.
+
+        Reviewed by Dan Bernstein.
+
+        Added overflow-across-columns.html and overflow-unsplittable.html
+
+        * rendering/LayoutState.cpp:
+        (WebCore::LayoutState::LayoutState):
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::adjustForUnsplittableChild):
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::hasUnsplittableScrollingOverflow):
+        * rendering/RenderBox.h:
+
 2011-08-30  Antti Koivisto  <[email protected]>
 
         querySelector/querySelectorAll should use selector checker fast path 

Modified: trunk/Source/WebCore/rendering/LayoutState.cpp (94091 => 94092)


--- trunk/Source/WebCore/rendering/LayoutState.cpp	2011-08-30 17:58:54 UTC (rev 94091)
+++ trunk/Source/WebCore/rendering/LayoutState.cpp	2011-08-30 18:28:51 UTC (rev 94092)
@@ -94,7 +94,7 @@
         m_pageOffset = m_next->m_pageOffset;
         
         // Disable pagination for objects we don't support.  For now this includes overflow:scroll/auto and inline blocks.
-        if (renderer->isReplaced() || renderer->scrollsOverflow())
+        if (renderer->isReplaced() || renderer->hasUnsplittableScrollingOverflow())
             m_pageLogicalHeight = 0;
     }
     

Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (94091 => 94092)


--- trunk/Source/WebCore/rendering/RenderBlock.cpp	2011-08-30 17:58:54 UTC (rev 94091)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp	2011-08-30 18:28:51 UTC (rev 94092)
@@ -6166,7 +6166,7 @@
 
 LayoutUnit RenderBlock::adjustForUnsplittableChild(RenderBox* child, LayoutUnit logicalOffset, bool includeMargins)
 {
-    bool isUnsplittable = child->isReplaced() || child->scrollsOverflow() || child->style()->columnBreakInside() == PBAVOID;
+    bool isUnsplittable = child->isReplaced() || child->hasUnsplittableScrollingOverflow() || child->style()->columnBreakInside() == PBAVOID;
     if (!isUnsplittable)
         return logicalOffset;
     LayoutUnit childLogicalHeight = logicalHeightForChild(child) + (includeMargins ? marginBeforeForChild(child) + marginAfterForChild(child) : 0);

Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (94091 => 94092)


--- trunk/Source/WebCore/rendering/RenderBox.cpp	2011-08-30 17:58:54 UTC (rev 94091)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp	2011-08-30 18:28:51 UTC (rev 94092)
@@ -3335,6 +3335,23 @@
     m_overflow->resetLayoutOverflow(borderBoxRect());
 }
 
+bool RenderBox::hasUnsplittableScrollingOverflow() const
+{
+    // We will paginate as long as we don't scroll overflow in the pagination direction.
+    bool isHorizontal = isHorizontalWritingMode();
+    if ((isHorizontal && !scrollsOverflowY()) || (!isHorizontal && !scrollsOverflowX()))
+        return false;
+    
+    // We do have overflow. We'll still be willing to paginate as long as the block
+    // has auto logical height, auto or undefined max-logical-height and a zero or auto min-logical-height.
+    // Note this is just a heuristic, and it's still possible to have overflow under these
+    // conditions, but it should work out to be good enough for common cases. Paginating overflow
+    // with scrollbars present is not the end of the world and is what we used to do in the old model anyway.
+    return !style()->logicalHeight().isIntrinsicOrAuto()
+        || (!style()->logicalMaxHeight().isIntrinsicOrAuto() && !style()->logicalMaxHeight().isUndefined())
+        || (!style()->logicalMinHeight().isIntrinsicOrAuto() && style()->logicalMinHeight().isPositive());
+}
+
 LayoutUnit RenderBox::lineHeight(bool /*firstLine*/, LineDirectionMode direction, LinePositionMode /*linePositionMode*/) const
 {
     if (isReplaced())

Modified: trunk/Source/WebCore/rendering/RenderBox.h (94091 => 94092)


--- trunk/Source/WebCore/rendering/RenderBox.h	2011-08-30 17:58:54 UTC (rev 94091)
+++ trunk/Source/WebCore/rendering/RenderBox.h	2011-08-30 18:28:51 UTC (rev 94092)
@@ -338,7 +338,8 @@
     bool scrollsOverflow() const { return scrollsOverflowX() || scrollsOverflowY(); }
     bool scrollsOverflowX() const { return hasOverflowClip() && (style()->overflowX() == OSCROLL || hasAutoHorizontalScrollbar()); }
     bool scrollsOverflowY() const { return hasOverflowClip() && (style()->overflowY() == OSCROLL || hasAutoVerticalScrollbar()); }
-    
+    bool hasUnsplittableScrollingOverflow() const;
+
     virtual LayoutRect localCaretRect(InlineBox*, int caretOffset, LayoutUnit* extraWidthToEndOfLine = 0);
 
     virtual LayoutRect overflowClipRect(const LayoutPoint& location, OverlayScrollbarSizeRelevancy = IgnoreOverlayScrollbarSize);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to