Changeset 35354 in webkit
- Timestamp:
- Jul 25, 2008 1:21:06 PM (16 years ago)
- Location:
- trunk
- Files:
-
- 5 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r35351 r35354 1 2008-07-25 Jacob Refstrup <jacob.refstrup@hp.com> 2 3 Reviewed by mitz. 4 5 - added test case for float being added in trailing whitespace 6 of an already full line (with pre-wrap or after-white-space set). 7 <rdar://problem/5805741> https://bugs.webkit.org/show_bug.cgi?id=17906 8 9 * fast/block/float/editable-text-overlapping-float.html: Added. 10 * platform/mac/fast/block/float/editable-text-overlapping-float-expected.checksum: Added. 11 * platform/mac/fast/block/float/editable-text-overlapping-float-expected.png: Added. 12 * platform/mac/fast/block/float/editable-text-overlapping-float-expected.txt: Added. 13 * platform/qt/fast/block/float/editable-text-overlapping-float-expected.txt: Added. 14 1 15 2008-07-24 David Hyatt <hyatt@apple.com> 2 16 -
trunk/WebCore/ChangeLog
r35352 r35354 1 2008-07-25 Jacob Refstrup <jacob.refstrup@hp.com> 2 3 Reviewed by mitz. 4 5 - fix https://bugs.webkit.org/show_bug.cgi?id=17906 6 <rdar://problem/5805741> white-space: pre-wrap or -webkit-line-break: after-white-space text can overlap float at end of line 7 8 Test: fast/block/float/editable-text-overlapping-float.html 9 10 * rendering/RenderBlock.h: 11 * rendering/bidi.cpp: 12 (WebCore::RenderBlock::skipTrailingWhitespace): 13 - renamed to reflect usage and removed call to position floats; 14 they only get added 15 (WebCore::RenderBlock::skipLeadingWhitespace): 16 - renamed to reflect usage 17 (WebCore::RenderBlock::findNextLineBreak): 18 - use skipTrailingWhitespace at end of line (as before but with new 19 name) 20 1 21 2008-07-25 Dan Bernstein <mitz@apple.com> 2 22 -
trunk/WebCore/rendering/RenderBlock.h
r35015 r35354 146 146 RootInlineBox*& endLine, int& endYPos, int& repaintBottom, int& repaintTop); 147 147 bool generatesLineBoxesForInlineChild(RenderObject*); 148 int skipWhitespace(InlineIterator&);149 int skip Whitespace(InlineBidiResolver&);148 void skipTrailingWhitespace(InlineIterator&); 149 int skipLeadingWhitespace(InlineBidiResolver&); 150 150 void fitBelowFloats(int widthToFit, int& availableWidth); 151 151 InlineIterator findNextLineBreak(InlineBidiResolver&, EClear* clear = 0); -
trunk/WebCore/rendering/bidi.cpp
r35148 r35354 1437 1437 } 1438 1438 1439 // FIXME: The entire concept of the skip Whitespace function is flawed, since we really need to be building1439 // FIXME: The entire concept of the skipTrailingWhitespace function is flawed, since we really need to be building 1440 1440 // line boxes even for containers that may ultimately collapse away. Otherwise we'll never get positioned 1441 1441 // elements quite right. In other words, we need to build this function's work into the normal line 1442 1442 // object iteration process. 1443 int RenderBlock::skipWhitespace(InlineIterator& iterator) 1444 { 1445 int availableWidth = lineWidth(m_height); 1443 // NB. this function will insert any floating elements that would otherwise 1444 // be skipped but it will not position them. 1445 void RenderBlock::skipTrailingWhitespace(InlineIterator& iterator) 1446 { 1446 1447 while (!iterator.atEnd() && !requiresLineBox(iterator)) { 1447 1448 RenderObject* object = iterator.obj; 1448 1449 if (object->isFloating()) { 1449 1450 insertFloatingObject(object); 1450 positionNewFloats();1451 availableWidth = lineWidth(m_height);1452 1451 } else if (object->isPositioned()) { 1453 1452 // FIXME: The math here is actually not really right. It's a best-guess approximation that … … 1474 1473 iterator.increment(); 1475 1474 } 1476 return availableWidth; 1477 } 1478 1479 int RenderBlock::skipWhitespace(InlineBidiResolver& resolver) 1475 } 1476 1477 int RenderBlock::skipLeadingWhitespace(InlineBidiResolver& resolver) 1480 1478 { 1481 1479 int availableWidth = lineWidth(m_height); … … 1560 1558 bool appliedStartWidth = resolver.position().pos > 0; 1561 1559 1562 int width = skip Whitespace(resolver);1560 int width = skipLeadingWhitespace(resolver); 1563 1561 1564 1562 int w = 0; … … 1879 1877 lBreak.obj = o; 1880 1878 lBreak.pos = pos; 1881 skip Whitespace(lBreak);1879 skipTrailingWhitespace(lBreak); 1882 1880 } 1883 1881 }
Note: See TracChangeset
for help on using the changeset viewer.