void RenderNamedFlowThread::removeRegionFromThread(RenderRegion* renderRegion) { ASSERT(renderRegion); m_regionRangeMap.clear(); m_regionList.remove(renderRegion); if (renderRegion->parentNamedFlowThread()) { if (!renderRegion->isValid()) { renderRegion->parentNamedFlowThread()->m_observerThreadsSet.remove(this); // No need to invalidate the regions rectangles. The removed region // was not taken into account. Just return here. return; } removeDependencyOnFlowThread(renderRegion->parentNamedFlowThread()); } if (canBeDestroyed()) setMarkForDestruction(); // After removing all the regions in the flow the following layout needs to dispatch the regionLayoutUpdate event if (m_regionList.isEmpty()) setDispatchRegionLayoutUpdateEvent(true); invalidateRegions(); }
void RenderNamedFlowThread::removeRegionFromThread(RenderRegion* renderRegion) { ASSERT(renderRegion); RenderNamedFlowFragment* renderNamedFlowFragment = toRenderNamedFlowFragment(renderRegion); if (renderNamedFlowFragment->parentNamedFlowThread()) { if (!renderNamedFlowFragment->isValid()) { ASSERT(m_invalidRegionList.contains(renderNamedFlowFragment)); m_invalidRegionList.remove(renderNamedFlowFragment); renderNamedFlowFragment->parentNamedFlowThread()->m_observerThreadsSet.remove(this); // No need to invalidate the regions rectangles. The removed region // was not taken into account. Just return here. return; } removeDependencyOnFlowThread(renderNamedFlowFragment->parentNamedFlowThread()); } ASSERT(m_regionList.contains(renderNamedFlowFragment)); bool wasFirst = m_regionList.first() == renderNamedFlowFragment; m_regionList.remove(renderNamedFlowFragment); if (canBeDestroyed()) setMarkForDestruction(); if (!m_regionList.isEmpty() && wasFirst) updateWritingMode(); invalidateRegions(); }
void RenderNamedFlowThread::unregisterNamedFlowContentElement(Element& contentElement) { ASSERT(m_contentElements.contains(&contentElement)); ASSERT(contentElement.inNamedFlow()); ASSERT(&contentElement.document() == &document()); contentElement.clearInNamedFlow(); m_contentElements.remove(&contentElement); if (canBeDestroyed()) setMarkForDestruction(); }
void RenderNamedFlowThread::unregisterNamedFlowContentNode(Node* contentNode) { ASSERT(contentNode && contentNode->isElementNode()); ASSERT(m_contentNodes.contains(contentNode)); ASSERT(contentNode->inNamedFlow()); ASSERT(contentNode->document() == document()); contentNode->clearInNamedFlow(); m_contentNodes.remove(contentNode); if (canBeDestroyed()) setMarkForDestruction(); }
void RenderNamedFlowThread::unregisterNamedFlowContentElement(Element& contentElement) { ASSERT(m_contentElements.contains(&contentElement)); ASSERT(contentElement.isNamedFlowContentNode()); ASSERT(&contentElement.document() == &document()); contentElement.clearIsNamedFlowContentNode(); m_contentElements.remove(&contentElement); if (canBeDestroyed()) setMarkForDestruction(); InspectorInstrumentation::didUnregisterNamedFlowContentElement(&document(), &namedFlow(), &contentElement); }