Repost invalidate events that fire in the middle of a view update batch. Bug

280214 partial fix, r+sr=roc


git-svn-id: svn://10.0.0.236/trunk@168586 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
bzbarsky%mit.edu
2005-01-31 22:41:19 +00:00
parent 933f91a120
commit 3a76aa2079

View File

@@ -4199,8 +4199,17 @@ nsViewManager::ProcessInvalidateEvent()
{
NS_ASSERTION(IsRootVM(),
"Incorrectly targeted invalidate event");
FlushPendingInvalidates();
// If we're in the middle of an update batch, just repost the event,
// to be processed when the batch ends.
PRBool processEvent = (mUpdateBatchCnt == 0);
if (processEvent) {
FlushPendingInvalidates();
}
mInvalidateEventQueue = nsnull;
if (!processEvent) {
// We didn't actually process this event... post a new one
PostInvalidateEvent();
}
}
NS_IMETHODIMP