void RenderWidget::resumeWidgetHierarchyUpdates() { ASSERT(widgetHierarchyUpdateSuspendCount); if (widgetHierarchyUpdateSuspendCount == 1) { WidgetToParentMap map = widgetNewParentMap(); widgetNewParentMap().clear(); WidgetToParentMap::iterator end = map.end(); for (WidgetToParentMap::iterator it = map.begin(); it != end; ++it) { Widget* child = it->first.get(); ScrollView* currentParent = child->parent(); FrameView* newParent = it->second; if (newParent != currentParent) { if (currentParent) currentParent->removeChild(child); if (newParent) newParent->addChild(child); } } } widgetHierarchyUpdateSuspendCount--; }
RenderWidget::UpdateSuspendScope::~UpdateSuspendScope() { ASSERT(s_updateSuspendCount > 0); if (s_updateSuspendCount == 1) { WidgetToParentMap map; widgetNewParentMap().swap(map); WidgetToParentMap::iterator end = map.end(); for (WidgetToParentMap::iterator it = map.begin(); it != end; ++it) { Widget* child = it->key.get(); ScrollView* currentParent = toScrollView(child->parent()); FrameView* newParent = it->value; if (newParent != currentParent) { if (currentParent) currentParent->removeChild(child); if (newParent) newParent->addChild(child); } } } --s_updateSuspendCount; }