Bug 395316 - Clear OutOfFlowFrame after unregistering placeholder, and make recursive call to RemoveFrame. r/sr/a=roc
git-svn-id: svn://10.0.0.236/trunk@237161 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
36cb680bd8
commit
1a0935b276
@ -9385,6 +9385,7 @@ static void UnregisterPlaceholderChain(nsFrameManager* frameManager,
|
||||
nsPlaceholderFrame* curFrame = placeholderFrame;
|
||||
do {
|
||||
frameManager->UnregisterPlaceholderFrame(curFrame);
|
||||
curFrame->SetOutOfFlowFrame(nsnull);
|
||||
curFrame = static_cast<nsPlaceholderFrame*>(curFrame->GetNextContinuation());
|
||||
} while (curFrame);
|
||||
}
|
||||
|
||||
@ -224,7 +224,14 @@ nsContainerFrame::RemoveFrame(nsIAtom* aListName,
|
||||
// check the overflow lists atm, but we'll need a prescontext lookup
|
||||
// for overflow containers once we can split abspos elements with
|
||||
// inline containing blocks.
|
||||
parent->mFrames.DestroyFrame(aOldFrame);
|
||||
if (parent == this) {
|
||||
parent->mFrames.DestroyFrame(aOldFrame);
|
||||
} else {
|
||||
// This recursive call takes care of all continuations after aOldFrame,
|
||||
// so we don't need to loop anymore.
|
||||
parent->RemoveFrame(nsnull, aOldFrame);
|
||||
break;
|
||||
}
|
||||
aOldFrame = oldFrameNextContinuation;
|
||||
if (aOldFrame) {
|
||||
parent = static_cast<nsContainerFrame*>(aOldFrame->GetParent());
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user