void LipstickCompositor::surfaceMapped() { QWaylandSurface *surface = qobject_cast<QWaylandSurface *>(sender()); //Ignore surface if it's not a window surface if (!surface->hasShellSurface()) return; QVariantMap properties = surface->windowProperties(); QString category = properties.value("CATEGORY").toString(); if (surface->surfaceItem()) return; // The surface was mapped for the first time int id = m_nextWindowId++; LipstickCompositorWindow *item = new LipstickCompositorWindow(id, category, surface, contentItem()); item->setSize(surface->size()); QObject::connect(item, SIGNAL(destroyed(QObject*)), this, SLOT(windowDestroyed())); m_totalWindowCount++; m_mappedSurfaces.insert(id, item); item->setTouchEventsEnabled(true); emit windowCountChanged(); emit windowAdded(item); windowAdded(id); emit availableWinIdsChanged(); }
void LipstickCompositor::surfaceSizeChanged() { QWaylandSurface *surface = qobject_cast<QWaylandSurface *>(sender()); LipstickCompositorWindow *window = static_cast<LipstickCompositorWindow *>(surface->surfaceItem()); if (window) window->setSize(surface->size()); }