during pseudo frame creation pseudo colgroup frames should not taken into account when analyzing the pseudostackframe depth, bug 266015 r=me sr=bzbarsky

git-svn-id: svn://10.0.0.236/trunk@165055 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
bmlk%gmx.de 2004-11-06 07:07:43 +00:00
parent 31397754be
commit d17e10572f
4 changed files with 14 additions and 8 deletions

View File

@ -2778,7 +2778,7 @@ nsCSSFrameConstructor::GetPseudoCellFrame(nsIPresShell* aPresShell,
nsPseudoFrames& pseudoFrames = aState.mPseudoFrames;
nsIAtom* parentFrameType = aParentFrameIn.GetType();
if (pseudoFrames.IsEmpty()) {
if (!pseudoFrames.mLowestType) {
PRBool created = PR_FALSE;
if (nsLayoutAtoms::tableFrame == parentFrameType) { // table parent
rv = CreatePseudoRowGroupFrame(aPresShell, aPresContext, aTableCreator, aState, &aParentFrameIn);
@ -3426,9 +3426,10 @@ nsCSSFrameConstructor::ConstructTableForeignFrame(nsIPresShell* aPres
aStyleContext)) {
// this frame may have a pseudo parent, use block frame type to
// trigger foreign
GetParentFrame(aPresShell, aPresContext, aTableCreator, *aParentFrameIn,
nsLayoutAtoms::blockFrame, aState, parentFrame,
hasPseudoParent);
rv = GetParentFrame(aPresShell, aPresContext, aTableCreator,
*aParentFrameIn, nsLayoutAtoms::blockFrame,
aState, parentFrame, hasPseudoParent);
NS_ASSERTION(NS_SUCCEEDED(rv), "GetParentFrame failed!");
if (!hasPseudoParent && !aState.mPseudoFrames.IsEmpty()) {
ProcessPseudoFrames(aPresContext, aState.mPseudoFrames, aChildItems);
}

View File

@ -2778,7 +2778,7 @@ nsCSSFrameConstructor::GetPseudoCellFrame(nsIPresShell* aPresShell,
nsPseudoFrames& pseudoFrames = aState.mPseudoFrames;
nsIAtom* parentFrameType = aParentFrameIn.GetType();
if (pseudoFrames.IsEmpty()) {
if (!pseudoFrames.mLowestType) {
PRBool created = PR_FALSE;
if (nsLayoutAtoms::tableFrame == parentFrameType) { // table parent
rv = CreatePseudoRowGroupFrame(aPresShell, aPresContext, aTableCreator, aState, &aParentFrameIn);
@ -3426,9 +3426,10 @@ nsCSSFrameConstructor::ConstructTableForeignFrame(nsIPresShell* aPres
aStyleContext)) {
// this frame may have a pseudo parent, use block frame type to
// trigger foreign
GetParentFrame(aPresShell, aPresContext, aTableCreator, *aParentFrameIn,
nsLayoutAtoms::blockFrame, aState, parentFrame,
hasPseudoParent);
rv = GetParentFrame(aPresShell, aPresContext, aTableCreator,
*aParentFrameIn, nsLayoutAtoms::blockFrame,
aState, parentFrame, hasPseudoParent);
NS_ASSERTION(NS_SUCCEEDED(rv), "GetParentFrame failed!");
if (!hasPseudoParent && !aState.mPseudoFrames.IsEmpty()) {
ProcessPseudoFrames(aPresContext, aState.mPseudoFrames, aChildItems);
}

View File

@ -554,6 +554,7 @@ void nsTableCellFrame::VerticallyAlignChild(nsPresContext* aPresContext
nscoord height = mRect.height;
nsIFrame* firstKid = mFrames.FirstChild();
NS_ASSERTION(firstKid, "Frame construction error, a table cell always has an inner cell frame");
nsRect kidRect = firstKid->GetRect();
nscoord childHeight = kidRect.height;
@ -798,6 +799,7 @@ NS_METHOD nsTableCellFrame::Reflow(nsPresContext* aPresContext,
kidSize.width=kidSize.height=kidSize.ascent=kidSize.descent=0;
SetPriorAvailWidth(aReflowState.availableWidth);
nsIFrame* firstKid = mFrames.FirstChild();
NS_ASSERTION(firstKid, "Frame construction error, a table cell always has an inner cell frame");
nscoord computedPaginatedHeight = 0;

View File

@ -554,6 +554,7 @@ void nsTableCellFrame::VerticallyAlignChild(nsPresContext* aPresContext
nscoord height = mRect.height;
nsIFrame* firstKid = mFrames.FirstChild();
NS_ASSERTION(firstKid, "Frame construction error, a table cell always has an inner cell frame");
nsRect kidRect = firstKid->GetRect();
nscoord childHeight = kidRect.height;
@ -798,6 +799,7 @@ NS_METHOD nsTableCellFrame::Reflow(nsPresContext* aPresContext,
kidSize.width=kidSize.height=kidSize.ascent=kidSize.descent=0;
SetPriorAvailWidth(aReflowState.availableWidth);
nsIFrame* firstKid = mFrames.FirstChild();
NS_ASSERTION(firstKid, "Frame construction error, a table cell always has an inner cell frame");
nscoord computedPaginatedHeight = 0;