diff --git a/mozilla/view/src/nsViewManager.cpp b/mozilla/view/src/nsViewManager.cpp index 60730fc70de..c2883d7e676 100644 --- a/mozilla/view/src/nsViewManager.cpp +++ b/mozilla/view/src/nsViewManager.cpp @@ -3406,8 +3406,9 @@ PRBool nsViewManager::CreateDisplayList(nsView *aView, PRBool aReparentedViewsPr bounds.y += aY; pos.MoveBy(aX, aY); - // is this a clip view? - PRBool isClipView = IsClipView(aView); + // does this view clip all its children? + PRBool isClipView = IsClipView(aView) + && !(aView->GetViewFlags() & NS_VIEW_FLAG_CONTAINS_PLACEHOLDER); PRBool overlap; nsRect irect; @@ -3445,8 +3446,7 @@ PRBool nsViewManager::CreateDisplayList(nsView *aView, PRBool aReparentedViewsPr // visible area can lie outside our bounds, so it can't intersect // the dirty area. Also, if we don't contain any placeholder views, // then there is no way for anyone to reparent below us. - if (!overlap && (isClipView || - (aView->GetViewFlags() & NS_VIEW_FLAG_CONTAINS_PLACEHOLDER) == 0)) { + if (!overlap && !(aView->GetViewFlags() & NS_VIEW_FLAG_CONTAINS_PLACEHOLDER)) { return PR_FALSE; }