UIWindow* UICanvas::addSurface(const String& name) { UIWindow* surface = new UIWindow(); surface->setName(name); surface->setPosition(m_bounds.left, m_bounds.top); surface->setSize(m_bounds.width, m_bounds.height); surface->setContext(&m_state); surface->m_parentDocument = this; if(m_surfaceContainerLock == 0) { m_surfaces.push_back(surface); } else { // Schedule add PendingChange change; change.type = Add; change.surface = surface; m_pendingChanges.push_back(change); } return surface; };