bug 47549 (Floaters cause entire page to redraw as content is appended (block paint perf))

r=kmcclusk@netscape.com
sr=waterson@netscape.com
This commit is contained in:
buster%netscape.com 2001-02-12 07:06:49 +00:00
parent 469981a979
commit d4879b7748
4 changed files with 12 additions and 8 deletions

View File

@ -283,12 +283,14 @@ nsBlockReflowContext::ReflowBlock(nsIFrame* aFrame,
reason = eReflowReason_Dirty;
}
}
/*
if (eReflowReason_Resize == reason) {
// we're doing a resize reflow, even though our outer reflow state is incremental
// text (and possibly other objects) don't do incremental painting for resize reflows
// so, we have to handle the invalidation for repainting ourselves
mBlockShouldInvalidateItself = PR_TRUE;
}
*/
}
}

View File

@ -4596,17 +4596,17 @@ nsTextFrame::Reflow(nsIPresContext* aPresContext,
else {
mState &= ~TEXT_OPTIMIZE_RESIZE;
}
// If it's an incremental reflow command, then invalidate our existing
// bounds.
// XXX We need a finer granularity than this, but it isn't clear what
// has actually changed...
if (eReflowReason_Incremental == aReflowState.reason ||
eReflowReason_Dirty == aReflowState.reason) {
/*if (eReflowReason_Incremental == aReflowState.reason ||
eReflowReason_Dirty == aReflowState.reason) {*/
maxFrameWidth = PR_MAX(maxFrameWidth, mRect.width);
maxFrameHeight = PR_MAX(maxFrameHeight, mRect.height);
Invalidate(aPresContext, nsRect(0,0,maxFrameWidth,maxFrameHeight));
}
/*}*/
#ifdef NOISY_REFLOW

View File

@ -283,12 +283,14 @@ nsBlockReflowContext::ReflowBlock(nsIFrame* aFrame,
reason = eReflowReason_Dirty;
}
}
/*
if (eReflowReason_Resize == reason) {
// we're doing a resize reflow, even though our outer reflow state is incremental
// text (and possibly other objects) don't do incremental painting for resize reflows
// so, we have to handle the invalidation for repainting ourselves
mBlockShouldInvalidateItself = PR_TRUE;
}
*/
}
}

View File

@ -4596,17 +4596,17 @@ nsTextFrame::Reflow(nsIPresContext* aPresContext,
else {
mState &= ~TEXT_OPTIMIZE_RESIZE;
}
// If it's an incremental reflow command, then invalidate our existing
// bounds.
// XXX We need a finer granularity than this, but it isn't clear what
// has actually changed...
if (eReflowReason_Incremental == aReflowState.reason ||
eReflowReason_Dirty == aReflowState.reason) {
/*if (eReflowReason_Incremental == aReflowState.reason ||
eReflowReason_Dirty == aReflowState.reason) {*/
maxFrameWidth = PR_MAX(maxFrameWidth, mRect.width);
maxFrameHeight = PR_MAX(maxFrameHeight, mRect.height);
Invalidate(aPresContext, nsRect(0,0,maxFrameWidth,maxFrameHeight));
}
/*}*/
#ifdef NOISY_REFLOW