reversion of patch for 92868, to repair severe regression (129827, a=drivers

git-svn-id: svn://10.0.0.236/trunk@116295 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
shaver%mozilla.org
2002-03-10 06:16:01 +00:00
parent 7e9a0226e6
commit e045387a83
18 changed files with 252 additions and 170 deletions

View File

@@ -1756,6 +1756,39 @@ nsTableFrame::SetColumnDimensions(nsIPresContext* aPresContext,
// SEC: TODO need to worry about continuing frames prev/next in flow for splitting across pages.
// GetParentStyleContextProvider:
// The grandparent frame is he parent style context provider
// That is, the parent of the outerTableFrame is the frame that has our parent style context
// NOTE: if ther is a placeholder frame for the outer table, then we use its grandparent frame.
//
NS_IMETHODIMP
nsTableFrame::GetParentStyleContextProvider(nsIPresContext* aPresContext,
nsIFrame** aProviderFrame,
nsContextProviderRelationship& aRelationship)
{
NS_ASSERTION(aProviderFrame, "null argument aProviderFrame");
if (aProviderFrame) {
nsIFrame* f;
GetParent(&f);
NS_ASSERTION(f,"TableFrame has no parent frame");
if (f) {
// see if there is a placeholder frame representing our parent's place in the frame tree
// if there is, we get the parent of that frame as our surrogate grandparent
nsIFrame* placeholder = nsnull;
GetPlaceholderFor(*aPresContext,*f,&placeholder);
if (placeholder) {
f = placeholder;
}
f->GetParent(&f);
NS_ASSERTION(f,"TableFrame has no grandparent frame");
}
// parent context provider is the grandparent frame
*aProviderFrame = f;
aRelationship = eContextProvider_Ancestor;
}
return ((aProviderFrame != nsnull) && (*aProviderFrame != nsnull)) ? NS_OK : NS_ERROR_FAILURE;
}
// XXX this could be made more general to handle row modifications that change the
// table height, but first we need to scrutinize every Invalidate
static void