Commit 857986be authored by hyatt's avatar hyatt
Browse files

When a clear occurs (thus causing a block to move underneath

	a float), make sure the block gets a fresh layout, so that it
	can readjust its contents now that they don't have to flow
	around the float.

        Reviewed by darin

        * khtml/rendering/render_flow.cpp:
        (RenderFlow::layoutBlockChildren):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3095 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent 1c1bd94f
2002-12-16 David Hyatt <hyatt@apple.com>
When a clear occurs (thus causing a block to move underneath
a float), make sure the block gets a fresh layout, so that it
can readjust its contents now that they don't have to flow
around the float.
Reviewed by darin
* khtml/rendering/render_flow.cpp:
(RenderFlow::layoutBlockChildren):
2002-12-16 Richard Williamson <rjw@apple.com> 2002-12-16 Richard Williamson <rjw@apple.com>
Fixed 3128477. Check KJS::Window before saving js objects. Fixed 3128477. Check KJS::Window before saving js objects.
......
2002-12-16 David Hyatt <hyatt@apple.com>
When a clear occurs (thus causing a block to move underneath
a float), make sure the block gets a fresh layout, so that it
can readjust its contents now that they don't have to flow
around the float.
Reviewed by darin
* khtml/rendering/render_flow.cpp:
(RenderFlow::layoutBlockChildren):
2002-12-16 Richard Williamson <rjw@apple.com> 2002-12-16 Richard Williamson <rjw@apple.com>
Fixed 3128477. Check KJS::Window before saving js objects. Fixed 3128477. Check KJS::Window before saving js objects.
......
...@@ -441,7 +441,7 @@ void RenderBox::repaint(bool immediate) ...@@ -441,7 +441,7 @@ void RenderBox::repaint(bool immediate)
{ {
//kdDebug( 6040 ) << "repaint!" << endl; //kdDebug( 6040 ) << "repaint!" << endl;
int ow = style() ? style()->outlineWidth() : 0; int ow = style() ? style()->outlineWidth() : 0;
repaintRectangle(-ow, -ow, m_width+ow*2, m_height+ow*2, immediate); repaintRectangle(-ow, -ow, overflowWidth()+ow*2, overflowHeight()+ow*2, immediate);
} }
void RenderBox::repaintRectangle(int x, int y, int w, int h, bool immediate, bool f) void RenderBox::repaintRectangle(int x, int y, int w, int h, bool immediate, bool f)
......
...@@ -672,6 +672,12 @@ void RenderFlow::layoutBlockChildren( bool relayoutChildren ) ...@@ -672,6 +672,12 @@ void RenderFlow::layoutBlockChildren( bool relayoutChildren )
m_maxTopPosMargin = oldPosMargin; m_maxTopPosMargin = oldPosMargin;
m_maxTopNegMargin = oldNegMargin; m_maxTopNegMargin = oldNegMargin;
} }
// If our value of clear caused us to be repositioned vertically to be
// underneath a float, we have to do another layout to take into account
// the extra space we now have available.
child->setLayouted(false);
child->layout();
} }
// Reset the top margin contributor to false if we encountered // Reset the top margin contributor to false if we encountered
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment