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::removeRegionFromThread(RenderRegion* renderRegion) { ASSERT(renderRegion); if (renderRegion->parentNamedFlowThread()) { if (!renderRegion->isValid()) { ASSERT(m_invalidRegionList.contains(renderRegion)); m_invalidRegionList.remove(renderRegion); 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()); } ASSERT(m_regionList.contains(renderRegion)); bool wasFirst = m_regionList.first() == renderRegion; m_regionList.remove(renderRegion); 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); else if (wasFirst) updateWritingMode(); invalidateRegions(); }
void RenderNamedFlowThread::addRegionToNamedFlowThread(RenderRegion* renderRegion) { ASSERT(renderRegion); ASSERT(!renderRegion->isValid()); if (renderRegion->parentNamedFlowThread()) addDependencyOnFlowThread(renderRegion->parentNamedFlowThread()); renderRegion->setIsValid(true); addRegionToList(m_regionList, renderRegion); if (m_regionList.first() == renderRegion) updateWritingMode(); }
void RenderNamedFlowThread::addFragmentToNamedFlowThread(RenderNamedFlowFragment* renderNamedFlowFragment) { ASSERT(renderNamedFlowFragment); ASSERT(!renderNamedFlowFragment->isValid()); if (renderNamedFlowFragment->parentNamedFlowThread()) addDependencyOnFlowThread(renderNamedFlowFragment->parentNamedFlowThread()); renderNamedFlowFragment->setIsValid(true); renderNamedFlowFragment->updateRegionFlags(); addFragmentToList(m_regionList, renderNamedFlowFragment); if (m_regionList.first() == renderNamedFlowFragment) updateWritingMode(); }
void RenderNamedFlowThread::regionChangedWritingMode(RenderRegion* region) { if (m_regionList.first() == region) updateWritingMode(); }