Disable a small part of the fix for bug 416168 to fix a regression with outlines of certain empty inlines. b=424236 r+sr=roc a=blocking1.9+

This commit is contained in:
2008-04-05 20:55:15 -07:00
parent 0a8e548107
commit a463de0a56
4 changed files with 53 additions and 2 deletions

View File

@@ -5296,6 +5296,14 @@ nsIFrame::GetOverflowAreaProperty(PRBool aCreateIfNecessary)
return nsnull;
}
inline PRBool
IsInlineFrame(nsIFrame *aFrame)
{
nsIAtom *type = aFrame->GetType();
return type == nsGkAtoms::inlineFrame ||
type == nsGkAtoms::positionedInlineFrame;
}
void
nsIFrame::FinishAndStoreOverflow(nsRect* aOverflowArea, nsSize aNewSize)
{
@@ -5321,8 +5329,11 @@ nsIFrame::FinishAndStoreOverflow(nsRect* aOverflowArea, nsSize aNewSize)
// Overflow area must always include the frame's top-left and bottom-right,
// even if the frame rect is empty.
aOverflowArea->UnionRectIncludeEmpty(*aOverflowArea,
nsRect(nsPoint(0, 0), aNewSize));
// Pending a real fix for bug 426879, don't do this for inline frames
// with zero width.
if (aNewSize.width != 0 || !IsInlineFrame(this))
aOverflowArea->UnionRectIncludeEmpty(*aOverflowArea,
nsRect(nsPoint(0, 0), aNewSize));
PRBool geometricOverflow =
aOverflowArea->x < 0 || aOverflowArea->y < 0 ||