Bug 241454. Enforce the rule that if a frame ever reflows its child asking for MEW, then it *always* reflows the child asking for MEW. r=bernd,sr=dbaron

git-svn-id: svn://10.0.0.236/trunk@157474 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
roc+%cs.cmu.edu 2004-06-06 20:45:23 +00:00
parent 40d6d65ecb
commit 6eee2bc446
4 changed files with 10 additions and 8 deletions

View File

@ -892,7 +892,10 @@ nsTableRowFrame::ReflowChildren(nsIPresContext* aPresContext,
// remember the rightmost (ltr) or leftmost (rtl) column this cell spans into
prevColIndex = (iter.IsLeftToRight()) ? cellColIndex + (cellColSpan - 1) : cellColIndex;
nsHTMLReflowMetrics desiredSize(PR_FALSE);
// always request MEW. Since we may turn MEW on for selected cells during incremental
// reflow, we need to request MEW *now* so that those incremental reflows will be
// able to build on existing MEW data in the children.
nsHTMLReflowMetrics desiredSize(PR_TRUE);
// If the avail width is not the same as last time we reflowed the cell or
// the cell wants to be bigger than what was available last time or
@ -936,8 +939,6 @@ nsTableRowFrame::ReflowChildren(nsIPresContext* aPresContext,
if (NS_UNCONSTRAINEDSIZE != availCellWidth) {
desiredSize.mFlags |= NS_REFLOW_CALC_MAX_WIDTH;
}
// request to get the max element size
desiredSize.mComputeMEW = PR_TRUE;
}
else {
cellToWatch = PR_FALSE;

View File

@ -340,7 +340,7 @@ nsTableRowGroupFrame::ReflowChildren(nsIPresContext* aPresContext,
nsSize kidAvailSize(aReflowState.availSize);
if (0 >= kidAvailSize.height)
kidAvailSize.height = 1; // XXX: HaCk - we don't handle negative heights yet
nsHTMLReflowMetrics desiredSize(PR_FALSE);
nsHTMLReflowMetrics desiredSize(aDesiredSize.mComputeMEW);
desiredSize.width = desiredSize.height = desiredSize.ascent = desiredSize.descent = 0;
// Reflow the child into the available space, giving it as much height as

View File

@ -892,7 +892,10 @@ nsTableRowFrame::ReflowChildren(nsIPresContext* aPresContext,
// remember the rightmost (ltr) or leftmost (rtl) column this cell spans into
prevColIndex = (iter.IsLeftToRight()) ? cellColIndex + (cellColSpan - 1) : cellColIndex;
nsHTMLReflowMetrics desiredSize(PR_FALSE);
// always request MEW. Since we may turn MEW on for selected cells during incremental
// reflow, we need to request MEW *now* so that those incremental reflows will be
// able to build on existing MEW data in the children.
nsHTMLReflowMetrics desiredSize(PR_TRUE);
// If the avail width is not the same as last time we reflowed the cell or
// the cell wants to be bigger than what was available last time or
@ -936,8 +939,6 @@ nsTableRowFrame::ReflowChildren(nsIPresContext* aPresContext,
if (NS_UNCONSTRAINEDSIZE != availCellWidth) {
desiredSize.mFlags |= NS_REFLOW_CALC_MAX_WIDTH;
}
// request to get the max element size
desiredSize.mComputeMEW = PR_TRUE;
}
else {
cellToWatch = PR_FALSE;

View File

@ -340,7 +340,7 @@ nsTableRowGroupFrame::ReflowChildren(nsIPresContext* aPresContext,
nsSize kidAvailSize(aReflowState.availSize);
if (0 >= kidAvailSize.height)
kidAvailSize.height = 1; // XXX: HaCk - we don't handle negative heights yet
nsHTMLReflowMetrics desiredSize(PR_FALSE);
nsHTMLReflowMetrics desiredSize(aDesiredSize.mComputeMEW);
desiredSize.width = desiredSize.height = desiredSize.ascent = desiredSize.descent = 0;
// Reflow the child into the available space, giving it as much height as