From edc62aaa6f571fec490c3c615ce2df50d1e8bf09 Mon Sep 17 00:00:00 2001 From: "attinasi%netscape.com" Date: Tue, 17 Jul 2001 19:35:23 +0000 Subject: [PATCH] Fixed regression (bug 90503) by restricting the full-view invalidate to the case where the height has decreased (instead of just changed). r=karnaze, sr=waterson b=86852 git-svn-id: svn://10.0.0.236/trunk@99426 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/layout/generic/nsContainerFrame.cpp | 12 ++++++------ mozilla/layout/html/base/src/nsContainerFrame.cpp | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/mozilla/layout/generic/nsContainerFrame.cpp b/mozilla/layout/generic/nsContainerFrame.cpp index cb02817b77d..b1aafc4c545 100644 --- a/mozilla/layout/generic/nsContainerFrame.cpp +++ b/mozilla/layout/generic/nsContainerFrame.cpp @@ -487,16 +487,16 @@ nsContainerFrame::SyncFrameViewAfterReflow(nsIPresContext* aPresContext, } else { nscoord width, height; aView->GetDimensions(&width, &height); - // If the height and width are unchanged then repaint only the newly exposed or - // contracted area, otherwise repaint the union of the old and new areas + // If the width is unchanged and the height is not decreased then repaint only the + // newly exposed or contracted area, otherwise repaint the union of the old and new areas // XXX: We currently invalidate the newly exposed areas only when the - // container frame dimensions are unchanged changes because some frames do not - // invalidate themselves properly. see bug 73825. + // container frame's width is unchanged and the height is either unchanged or increased + // This is because some frames do not invalidate themselves properly. see bug 73825. // Once bug 73825 is fixed, we should always pass PR_TRUE instead of - // frameSize.width == width && frameSize.height == height. + // frameSize.width == width && frameSize.height >= height. vm->ResizeView(aView, frameSize.width, frameSize.height, - (frameSize.width == width && frameSize.height == height)); + (frameSize.width == width && frameSize.height >= height)); } } diff --git a/mozilla/layout/html/base/src/nsContainerFrame.cpp b/mozilla/layout/html/base/src/nsContainerFrame.cpp index cb02817b77d..b1aafc4c545 100644 --- a/mozilla/layout/html/base/src/nsContainerFrame.cpp +++ b/mozilla/layout/html/base/src/nsContainerFrame.cpp @@ -487,16 +487,16 @@ nsContainerFrame::SyncFrameViewAfterReflow(nsIPresContext* aPresContext, } else { nscoord width, height; aView->GetDimensions(&width, &height); - // If the height and width are unchanged then repaint only the newly exposed or - // contracted area, otherwise repaint the union of the old and new areas + // If the width is unchanged and the height is not decreased then repaint only the + // newly exposed or contracted area, otherwise repaint the union of the old and new areas // XXX: We currently invalidate the newly exposed areas only when the - // container frame dimensions are unchanged changes because some frames do not - // invalidate themselves properly. see bug 73825. + // container frame's width is unchanged and the height is either unchanged or increased + // This is because some frames do not invalidate themselves properly. see bug 73825. // Once bug 73825 is fixed, we should always pass PR_TRUE instead of - // frameSize.width == width && frameSize.height == height. + // frameSize.width == width && frameSize.height >= height. vm->ResizeView(aView, frameSize.width, frameSize.height, - (frameSize.width == width && frameSize.height == height)); + (frameSize.width == width && frameSize.height >= height)); } }