Fix for bug #3445. Changed ReconstructDocElementHierarchy() to handle fixed

elements
This commit is contained in:
troy%netscape.com 1999-03-25 05:24:16 +00:00
parent 4576d27022
commit 9a2573ab32
2 changed files with 22 additions and 20 deletions

View File

@ -2965,21 +2965,22 @@ nsCSSFrameConstructor::ReconstructDocElementHierarchy(nsIPresContext* aPresConte
if (NS_SUCCEEDED(rv)) {
nsIFrame* newChild;
nsCOMPtr<nsIStyleContext> rootPseudoStyle;
nsAbsoluteItems fixedItems(nsnull); // XXX FIX ME...
nsAbsoluteItems fixedItems(mFixedContainingBlock);
docParentFrame->GetStyleContext(getter_AddRefs(rootPseudoStyle));
rv = ConstructDocElementFrame(aPresContext, rootContent,
docParentFrame,
rootPseudoStyle, newChild,
fixedItems);
docParentFrame, rootPseudoStyle,
newChild, fixedItems);
// XXX Do something with the fixed items...
if (NS_SUCCEEDED(rv)) {
rv = docParentFrame->InsertFrames(*aPresContext,
*shell,
nsnull,
nsnull,
newChild);
rv = docParentFrame->InsertFrames(*aPresContext, *shell, nsnull,
nsnull, newChild);
// Tell the fixed containing block about its 'fixed' frames
if (nsnull != fixedItems.childList) {
mFixedContainingBlock->InsertFrames(*aPresContext, *shell,
nsLayoutAtoms::fixedList, nsnull, fixedItems.childList);
}
}
}
}

View File

@ -2965,21 +2965,22 @@ nsCSSFrameConstructor::ReconstructDocElementHierarchy(nsIPresContext* aPresConte
if (NS_SUCCEEDED(rv)) {
nsIFrame* newChild;
nsCOMPtr<nsIStyleContext> rootPseudoStyle;
nsAbsoluteItems fixedItems(nsnull); // XXX FIX ME...
nsAbsoluteItems fixedItems(mFixedContainingBlock);
docParentFrame->GetStyleContext(getter_AddRefs(rootPseudoStyle));
rv = ConstructDocElementFrame(aPresContext, rootContent,
docParentFrame,
rootPseudoStyle, newChild,
fixedItems);
docParentFrame, rootPseudoStyle,
newChild, fixedItems);
// XXX Do something with the fixed items...
if (NS_SUCCEEDED(rv)) {
rv = docParentFrame->InsertFrames(*aPresContext,
*shell,
nsnull,
nsnull,
newChild);
rv = docParentFrame->InsertFrames(*aPresContext, *shell, nsnull,
nsnull, newChild);
// Tell the fixed containing block about its 'fixed' frames
if (nsnull != fixedItems.childList) {
mFixedContainingBlock->InsertFrames(*aPresContext, *shell,
nsLayoutAtoms::fixedList, nsnull, fixedItems.childList);
}
}
}
}