зеркало из https://github.com/mozilla/gecko-dev.git
Invalidate the original overflow rect too when the frame moves. Bug 424766, r+sr=roc
This commit is contained in:
Родитель
b52dc9c3d6
Коммит
7fcd1f6092
|
@ -6810,7 +6810,13 @@ nsTableFrame::InvalidateFrame(nsIFrame* aFrame,
|
||||||
if (aIsFirstReflow ||
|
if (aIsFirstReflow ||
|
||||||
aOrigRect.TopLeft() != aFrame->GetPosition() ||
|
aOrigRect.TopLeft() != aFrame->GetPosition() ||
|
||||||
aOrigOverflowRect.TopLeft() != overflowRect.TopLeft()) {
|
aOrigOverflowRect.TopLeft() != overflowRect.TopLeft()) {
|
||||||
aFrame->InvalidateOverflowRect();
|
// Invalidate the old and new overflow rects. Note that if the
|
||||||
|
// frame moved, we can't just use aOrigOverflowRect, since it's in
|
||||||
|
// coordinates relative to the old position. So invalidate via
|
||||||
|
// aFrame's parent, and reposition that overflow rect to the right
|
||||||
|
// place.
|
||||||
|
aFrame->Invalidate(overflowRect);
|
||||||
|
parent->Invalidate(aOrigOverflowRect + aOrigRect.TopLeft());
|
||||||
} else {
|
} else {
|
||||||
aFrame->InvalidateRectDifference(aOrigOverflowRect, overflowRect);
|
aFrame->InvalidateRectDifference(aOrigOverflowRect, overflowRect);
|
||||||
parent->InvalidateRectDifference(aOrigRect, aFrame->GetRect());
|
parent->InvalidateRectDifference(aOrigRect, aFrame->GetRect());
|
||||||
|
|
Загрузка…
Ссылка в новой задаче