Bug 377391: Parts of a rectangle with CSS outline remains, when changing rectangle size. r+sr=roc

This commit is contained in:
sharparrow1@yahoo.com 2007-05-21 03:06:08 -07:00
Родитель dd87ddc925
Коммит 94a5c3af5a
3 изменённых файлов: 6 добавлений и 2 удалений

Просмотреть файл

@ -1120,11 +1120,11 @@ nsBlockFrame::Reflow(nsPresContext* aPresContext,
aMetrics.mOverflowArea.UnionRect(aMetrics.mOverflowArea, childBounds);
}
FinishAndStoreOverflow(&aMetrics);
// Determine if we need to repaint our border, background or outline
CheckInvalidateSizeChange(aPresContext, aMetrics, aReflowState);
FinishAndStoreOverflow(&aMetrics);
// Clear the space manager pointer in the block reflow state so we
// don't waste time translating the coordinate system back on a dead
// space manager.

Просмотреть файл

@ -3801,6 +3801,7 @@ nsFrame::CheckInvalidateSizeChange(nsPresContext* aPresContext,
nsRect r = ComputeOutlineRect(this, &anyOutline,
aDesiredSize.mOverflowArea);
if (anyOutline) {
r.UnionRect(GetOverflowRect(), r);
Invalidate(r);
return;
}

Просмотреть файл

@ -406,7 +406,10 @@ nsSubDocumentFrame::Reflow(nsPresContext* aPresContext,
// Determine if we need to repaint our border, background or outline
CheckInvalidateSizeChange(aPresContext, aDesiredSize, aReflowState);
FinishAndStoreOverflow(&aDesiredSize);
// Invalidate the frame contents
// XXX is this really needed?
nsRect rect(nsPoint(0, 0), GetSize());
Invalidate(rect, PR_FALSE);