diff --git a/mozilla/layout/xul/base/src/nsXULTreeOuterGroupFrame.cpp b/mozilla/layout/xul/base/src/nsXULTreeOuterGroupFrame.cpp index 0616b7eacc1..139ddf8393d 100644 --- a/mozilla/layout/xul/base/src/nsXULTreeOuterGroupFrame.cpp +++ b/mozilla/layout/xul/base/src/nsXULTreeOuterGroupFrame.cpp @@ -458,23 +458,21 @@ nsXULTreeOuterGroupFrame::PositionChanged(PRInt32 aOldIndex, PRInt32 aNewIndex) NS_IMETHODIMP nsXULTreeOuterGroupFrame::InternalPositionChanged(PRBool aUp, PRInt32 aDelta) { + if (mContentChain) { + // XXX Eventually we need to make the code smart enough to look at a content chain + // when building ANOTHER content chain. + // Ensure all reflows happen first and make sure we're dirty. + nsCOMPtr shell; + mPresContext->GetShell(getter_AddRefs(shell)); + shell->FlushPendingNotifications(); + } + PRInt32 visibleRows = 0; if (mRowHeight) - visibleRows = GetAvailableHeight()/mRowHeight; + visibleRows = GetAvailableHeight()/mRowHeight; // Get our presentation context. if (aDelta < visibleRows) { - if (mContentChain) { - // XXX This could cause problems because of async reflow. - // Eventually we need to make the code smart enough to look at a content chain - // when building ANOTHER content chain. - - // Ensure all reflows happen first. - nsCOMPtr shell; - mPresContext->GetShell(getter_AddRefs(shell)); - shell->FlushPendingNotifications(); - } - PRInt32 loseRows = aDelta; // scrolling down