fantasai wrote:
So afaict the actual work of DeletingFrameSubtree &co is just these lines

http://mxr.mozilla.org/mozilla-central/source/layout/base/nsCSSFrameConstructor.cpp#6938
  // Remove the mapping from the content object to its frame.
  nsIContent* content = aFrame->GetContent();
  if (content) {
    aFrameManager->RemoveAsPrimaryFrame(content, aFrame);
    aFrameManager->ClearAllUndisplayedContentIn(content);
  }
with the rest being recursion code.

Yes; the rest of it is basically making sure that we find all the relevant out-of-flows and destroy them in the right order.

This is then followed up by a call to nsFrameManager::RemoveFrame at the top 
level. Does that seem right?

Yes, but that call is preceded by RemoveFrame calls on the out-of-flows whose placeholders are under the frame being removed but whose containing blocks are not.

Would it make sense for nsIFrame::RemoveFrame to unmap the content
itself?

Yes; the hard part is handling the out-of-flows, right?

-Boris
_______________________________________________
dev-tech-layout mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-layout

Reply via email to