ensure a correct overflow area, even if the overflow is clipped, it should be the frame size under these conditions bug = 260241 r/sr=dbaron

This commit is contained in:
bmlk%gmx.de 2004-09-19 09:50:41 +00:00
parent 9f9243850e
commit ddf4e18bb2
2 changed files with 8 additions and 4 deletions

View File

@ -2071,13 +2071,15 @@ NS_METHOD nsTableFrame::Reflow(nsPresContext* aPresContext,
if (aDesiredSize.mFlags & NS_REFLOW_CALC_MAX_WIDTH) { if (aDesiredSize.mFlags & NS_REFLOW_CALC_MAX_WIDTH) {
aDesiredSize.mMaximumWidth = GetPreferredWidth(); aDesiredSize.mMaximumWidth = GetPreferredWidth();
} }
// make sure the table overflow area does include the table rect.
nsRect tableRect(0, 0, aDesiredSize.width, aDesiredSize.height) ;
if (!aReflowState.mStyleDisplay->IsTableClip()) { if (!aReflowState.mStyleDisplay->IsTableClip()) {
// collapsed border may leak out // collapsed border may leak out
nsMargin bcMargin = GetBCMargin(aPresContext); nsMargin bcMargin = GetBCMargin(aPresContext);
nsRect tableRect(0, 0, aDesiredSize.width, aDesiredSize.height) ;
tableRect.Inflate(bcMargin); tableRect.Inflate(bcMargin);
aDesiredSize.mOverflowArea.UnionRect(aDesiredSize.mOverflowArea, tableRect);
} }
aDesiredSize.mOverflowArea.UnionRect(aDesiredSize.mOverflowArea, tableRect);
if (aReflowState.mFlags.mSpecialHeightReflow) { if (aReflowState.mFlags.mSpecialHeightReflow) {
SetNeedSpecialReflow(PR_FALSE); SetNeedSpecialReflow(PR_FALSE);

View File

@ -2071,13 +2071,15 @@ NS_METHOD nsTableFrame::Reflow(nsPresContext* aPresContext,
if (aDesiredSize.mFlags & NS_REFLOW_CALC_MAX_WIDTH) { if (aDesiredSize.mFlags & NS_REFLOW_CALC_MAX_WIDTH) {
aDesiredSize.mMaximumWidth = GetPreferredWidth(); aDesiredSize.mMaximumWidth = GetPreferredWidth();
} }
// make sure the table overflow area does include the table rect.
nsRect tableRect(0, 0, aDesiredSize.width, aDesiredSize.height) ;
if (!aReflowState.mStyleDisplay->IsTableClip()) { if (!aReflowState.mStyleDisplay->IsTableClip()) {
// collapsed border may leak out // collapsed border may leak out
nsMargin bcMargin = GetBCMargin(aPresContext); nsMargin bcMargin = GetBCMargin(aPresContext);
nsRect tableRect(0, 0, aDesiredSize.width, aDesiredSize.height) ;
tableRect.Inflate(bcMargin); tableRect.Inflate(bcMargin);
aDesiredSize.mOverflowArea.UnionRect(aDesiredSize.mOverflowArea, tableRect);
} }
aDesiredSize.mOverflowArea.UnionRect(aDesiredSize.mOverflowArea, tableRect);
if (aReflowState.mFlags.mSpecialHeightReflow) { if (aReflowState.mFlags.mSpecialHeightReflow) {
SetNeedSpecialReflow(PR_FALSE); SetNeedSpecialReflow(PR_FALSE);