Index: Source/WebCore/rendering/RenderBlock.cpp |
diff --git a/Source/WebCore/rendering/RenderBlock.cpp b/Source/WebCore/rendering/RenderBlock.cpp |
index 77e028a4049b6c3f158cb1b14b4720987ab13762..bda91e41f6bb09e0e459e12ebcae1ae30d0e2bb0 100644 |
--- a/Source/WebCore/rendering/RenderBlock.cpp |
+++ b/Source/WebCore/rendering/RenderBlock.cpp |
@@ -2595,6 +2595,12 @@ void RenderBlock::layoutBlockChild(RenderBox* child, MarginInfo& marginInfo, Lay |
child->layoutIfNeeded(); |
} |
+ // Dialog requires special positioning and must lay itself out. |
+ if (child->isDialog()) { |
+ child->setNeedsLayout(true); |
+ child->layout(); |
+ } |
+ |
// We are no longer at the top of the block if we encounter a non-empty child. |
// This has to be done after checking for clear, so that margins can be reset if a clear occurred. |
if (marginInfo.atBeforeSideOfBlock() && !child->isSelfCollapsingBlock()) |
@@ -2637,7 +2643,9 @@ void RenderBlock::layoutBlockChild(RenderBox* child, MarginInfo& marginInfo, Lay |
setLogicalHeight(newHeight); |
} |
- ASSERT(view()->layoutDeltaMatches(oldLayoutDelta)); |
falken
2013/04/09 10:35:51
Unfortunately this ASSERT gets tripped even with t
|
+ if (!view()->layoutDeltaMatches(oldLayoutDelta)) { |
+ fprintf(stderr, "layout delta doesn't match\n"); |
+ } |
} |
void RenderBlock::simplifiedNormalFlowLayout() |