bug 54542 (Hyatt's patch) - pass in style context instead of resolving it. a=buster, r=karnaze.

This commit is contained in:
karnaze%netscape.com 2000-10-25 14:55:21 +00:00
Родитель abc25deed0
Коммит cea1265120
4 изменённых файлов: 26 добавлений и 28 удалений

Просмотреть файл

@ -2910,15 +2910,13 @@ PRBool
nsCSSFrameConstructor::MustGeneratePseudoParent(nsIPresContext* aPresContext, nsCSSFrameConstructor::MustGeneratePseudoParent(nsIPresContext* aPresContext,
nsIFrame* aParentFrame, nsIFrame* aParentFrame,
nsIAtom* aTag, nsIAtom* aTag,
nsIContent* aContent) nsIContent* aContent,
nsIStyleContext* aStyleContext)
{ {
nsCOMPtr<nsIStyleContext> styleContext; if (!aStyleContext) return PR_FALSE;
nsresult rv = ResolveStyleContext(aPresContext, aParentFrame, aContent, aTag, getter_AddRefs(styleContext));
if (NS_FAILED(rv)) return PR_FALSE;
const nsStyleDisplay* display = (const nsStyleDisplay*) const nsStyleDisplay* display = (const nsStyleDisplay*)
styleContext->GetStyleData(eStyleStruct_Display); aStyleContext->GetStyleData(eStyleStruct_Display);
if (NS_STYLE_DISPLAY_NONE == display->mDisplay) return PR_FALSE; if (NS_STYLE_DISPLAY_NONE == display->mDisplay) return PR_FALSE;
@ -2986,7 +2984,7 @@ nsCSSFrameConstructor::ConstructTableForeignFrame(nsIPresShell* aPres
} }
} }
// Do not construct pseudo frames for trees // Do not construct pseudo frames for trees
else if (MustGeneratePseudoParent(aPresContext, aParentFrameIn, tag.get(), aContent)) { else if (MustGeneratePseudoParent(aPresContext, aParentFrameIn, tag.get(), aContent, aStyleContext)) {
// this frame may have a pseudo parent, use block frame type to trigger foreign // this frame may have a pseudo parent, use block frame type to trigger foreign
GetParentFrame(aPresShell, aPresContext, aTableCreator, *aParentFrameIn, GetParentFrame(aPresShell, aPresContext, aTableCreator, *aParentFrameIn,
nsLayoutAtoms::blockFrame, aState, parentFrame, aIsPseudoParent); nsLayoutAtoms::blockFrame, aState, parentFrame, aIsPseudoParent);

Просмотреть файл

@ -301,7 +301,8 @@ protected:
PRBool MustGeneratePseudoParent(nsIPresContext* aPresContext, PRBool MustGeneratePseudoParent(nsIPresContext* aPresContext,
nsIFrame* aParentFrame, nsIFrame* aParentFrame,
nsIAtom* aTag, nsIAtom* aTag,
nsIContent* aContent); nsIContent* aContent,
nsIStyleContext* aContext);
nsresult ConstructTableForeignFrame(nsIPresShell* aPresShell, nsresult ConstructTableForeignFrame(nsIPresShell* aPresShell,
nsIPresContext* aPresContext, nsIPresContext* aPresContext,

Просмотреть файл

@ -2910,15 +2910,13 @@ PRBool
nsCSSFrameConstructor::MustGeneratePseudoParent(nsIPresContext* aPresContext, nsCSSFrameConstructor::MustGeneratePseudoParent(nsIPresContext* aPresContext,
nsIFrame* aParentFrame, nsIFrame* aParentFrame,
nsIAtom* aTag, nsIAtom* aTag,
nsIContent* aContent) nsIContent* aContent,
nsIStyleContext* aStyleContext)
{ {
nsCOMPtr<nsIStyleContext> styleContext; if (!aStyleContext) return PR_FALSE;
nsresult rv = ResolveStyleContext(aPresContext, aParentFrame, aContent, aTag, getter_AddRefs(styleContext));
if (NS_FAILED(rv)) return PR_FALSE;
const nsStyleDisplay* display = (const nsStyleDisplay*) const nsStyleDisplay* display = (const nsStyleDisplay*)
styleContext->GetStyleData(eStyleStruct_Display); aStyleContext->GetStyleData(eStyleStruct_Display);
if (NS_STYLE_DISPLAY_NONE == display->mDisplay) return PR_FALSE; if (NS_STYLE_DISPLAY_NONE == display->mDisplay) return PR_FALSE;
@ -2986,7 +2984,7 @@ nsCSSFrameConstructor::ConstructTableForeignFrame(nsIPresShell* aPres
} }
} }
// Do not construct pseudo frames for trees // Do not construct pseudo frames for trees
else if (MustGeneratePseudoParent(aPresContext, aParentFrameIn, tag.get(), aContent)) { else if (MustGeneratePseudoParent(aPresContext, aParentFrameIn, tag.get(), aContent, aStyleContext)) {
// this frame may have a pseudo parent, use block frame type to trigger foreign // this frame may have a pseudo parent, use block frame type to trigger foreign
GetParentFrame(aPresShell, aPresContext, aTableCreator, *aParentFrameIn, GetParentFrame(aPresShell, aPresContext, aTableCreator, *aParentFrameIn,
nsLayoutAtoms::blockFrame, aState, parentFrame, aIsPseudoParent); nsLayoutAtoms::blockFrame, aState, parentFrame, aIsPseudoParent);

Просмотреть файл

@ -301,7 +301,8 @@ protected:
PRBool MustGeneratePseudoParent(nsIPresContext* aPresContext, PRBool MustGeneratePseudoParent(nsIPresContext* aPresContext,
nsIFrame* aParentFrame, nsIFrame* aParentFrame,
nsIAtom* aTag, nsIAtom* aTag,
nsIContent* aContent); nsIContent* aContent,
nsIStyleContext* aContext);
nsresult ConstructTableForeignFrame(nsIPresShell* aPresShell, nsresult ConstructTableForeignFrame(nsIPresShell* aPresShell,
nsIPresContext* aPresContext, nsIPresContext* aPresContext,