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

280214 partial fix, r+sr=roc
This commit is contained in:
bzbarsky%mit.edu 2005-01-31 22:41:19 +00:00
Родитель 99a77bfc1a
Коммит 4b0b6a1704
1 изменённых файлов: 10 добавлений и 1 удалений

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

@ -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