Bug in rightmost/lowest/leftmost position methods

David Hyatt hyatt at apple.com
Fri Feb 20 23:33:58 CET 2004


... when examining floats, the margins needed to be added in... very 
simple bug...

-------------- next part --------------
Index: khtml/rendering/render_block.cpp
===================================================================
RCS file: /local/home/cvs/Labyrinth/WebCore/khtml/rendering/render_block.cpp,v
retrieving revision 1.100
diff -u -p -r1.100 khtml/rendering/render_block.cpp
--- khtml/rendering/render_block.cpp	2004/02/12 08:04:00	1.100
+++ khtml/rendering/render_block.cpp	2004/02/20 21:08:37
@@ -1638,7 +1662,7 @@ RenderBlock::lowestPosition(bool include
         QPtrListIterator<FloatingObject> it(*m_floatingObjects);
         for ( ; (r = it.current()); ++it ) {
             if (!r->noPaint) {
-                int lp = r->startY + r->node->lowestPosition(false);
+                int lp = r->startY + r->node->marginTop() + r->node->lowestPosition(false);
                 bottom = kMax(bottom, lp);
             }
         }
@@ -1676,7 +1700,7 @@ int RenderBlock::rightmostPosition(bool 
         QPtrListIterator<FloatingObject> it(*m_floatingObjects);
         for ( ; (r = it.current()); ++it ) {
             if (!r->noPaint) {
-                int rp = r->left + r->node->rightmostPosition(false);
+                int rp = r->left + r->node->marginLeft() + r->node->rightmostPosition(false);
            	right = kMax(right, rp);
             }
         }
@@ -1714,7 +1738,7 @@ int RenderBlock::leftmostPosition(bool i
         QPtrListIterator<FloatingObject> it(*m_floatingObjects);
         for ( ; (r = it.current()); ++it ) {
             if (!r->noPaint) {
-                int lp = r->left + r->node->leftmostPosition(false);
+                int lp = r->left + r->node->marginLeft() + r->node->leftmostPosition(false);
                 left = kMin(left, lp);
             }
         }
-------------- next part --------------


dave


More information about the Khtml-devel mailing list