Changeset 83099 in webkit
- Timestamp:
- Apr 6, 2011 2:22:56 PM (13 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r83098 r83099 1 2011-04-06 David Hyatt <hyatt@apple.com> 2 3 Reviewed by Simon Fraser. 4 5 https://bugs.webkit.org/show_bug.cgi?id=57981 6 7 Update the column count and width computation algorithm for CSS3 multi-column layout 8 to match the revised pseudo-algorithm in the latest draft of the spec. 9 10 * rendering/RenderBlock.cpp: 11 (WebCore::RenderBlock::calcColumnWidth): 12 1 13 2011-04-06 Ryosuke Niwa <rniwa@webkit.org> 2 14 -
trunk/Source/WebCore/rendering/RenderBlock.cpp
r83075 r83099 4209 4209 int colCount = max(1, static_cast<int>(style()->columnCount())); 4210 4210 4211 if (style()->hasAutoColumnWidth()) { 4212 if ((colCount - 1) * colGap < availWidth) { 4213 desiredColumnCount = colCount; 4214 desiredColumnWidth = (availWidth - (desiredColumnCount - 1) * colGap) / desiredColumnCount; 4215 } else if (colGap < availWidth) { 4216 desiredColumnCount = availWidth / colGap; 4217 if (desiredColumnCount < 1) 4218 desiredColumnCount = 1; 4219 desiredColumnWidth = (availWidth - (desiredColumnCount - 1) * colGap) / desiredColumnCount; 4220 } 4221 } else if (style()->hasAutoColumnCount()) { 4222 if (colWidth < availWidth) { 4223 desiredColumnCount = (availWidth + colGap) / (colWidth + colGap); 4224 if (desiredColumnCount < 1) 4225 desiredColumnCount = 1; 4226 desiredColumnWidth = (availWidth - (desiredColumnCount - 1) * colGap) / desiredColumnCount; 4227 } 4211 if (style()->hasAutoColumnWidth() && !style()->hasAutoColumnCount()) { 4212 desiredColumnCount = colCount; 4213 desiredColumnWidth = max<int>(0, (availWidth - ((desiredColumnCount - 1) * colGap)) / desiredColumnCount); 4214 } else if (!style()->hasAutoColumnWidth() && style()->hasAutoColumnCount()) { 4215 desiredColumnCount = max<int>(1, (float)(availWidth + colGap) / (colWidth + colGap)); 4216 desiredColumnWidth = ((availWidth + colGap) / desiredColumnCount) - colGap; 4228 4217 } else { 4229 // Both are set. 4230 if (colCount * colWidth + (colCount - 1) * colGap <= availWidth) { 4231 desiredColumnCount = colCount; 4232 desiredColumnWidth = colWidth; 4233 } else if (colWidth < availWidth) { 4234 desiredColumnCount = (availWidth + colGap) / (colWidth + colGap); 4235 if (desiredColumnCount < 1) 4236 desiredColumnCount = 1; 4237 desiredColumnWidth = (availWidth - (desiredColumnCount - 1) * colGap) / desiredColumnCount; 4238 } 4218 desiredColumnCount = min<int>(colCount, (float)(availWidth + colGap) / (colWidth + colGap)); 4219 desiredColumnWidth = ((availWidth + colGap) / desiredColumnCount) - colGap; 4239 4220 } 4240 4221 setDesiredColumnCountAndWidth(desiredColumnCount, desiredColumnWidth);
Note: See TracChangeset
for help on using the changeset viewer.