Bug 480017. Suppress misplaced popups before we construct table pseudoframe parents. r+sr=roc

This commit is contained in:
Boris Zbarsky
2009-03-01 10:16:29 -05:00
parent 93fb898bd6
commit 1b78e806b9
4 changed files with 48 additions and 8 deletions

View File

@@ -6634,6 +6634,14 @@ nsCSSFrameConstructor::ConstructFrameInternal(nsFrameConstructorState& aState,
if (data->mBits & FCDATA_SUPPRESS_FRAME) {
return NS_OK;
}
#ifdef MOZ_XUL
if ((data->mBits & FCDATA_IS_POPUP) &&
aParentFrame->GetType() != nsGkAtoms::menuFrame &&
!aState.mPopupItems.containingBlock) {
return NS_OK;
}
#endif /* MOZ_XUL */
}
nsIFrame* adjParentFrame = aParentFrame;
@@ -6669,14 +6677,6 @@ nsCSSFrameConstructor::ConstructFrameInternal(nsFrameConstructorState& aState,
styleContext->GetStyleBackground();
}
#ifdef MOZ_XUL
if ((data->mBits & FCDATA_IS_POPUP) &&
adjParentFrame->GetType() != nsGkAtoms::menuFrame &&
!aState.mPopupItems.containingBlock) {
return NS_OK;
}
#endif /* MOZ_XUL */
// Construct a page break frame for page-break-before, if needed, and
// remember whether we need one for page-break-after.
PRBool pageBreakAfter =