desktop: move popup and subsurface ctors to factories

makes sure m_pSelf is set before we do anything like possibly adding children

fixes #9275

supersedes #9276
This commit is contained in:
Vaxry 2025-02-01 15:08:30 +00:00
parent 5b43c106bd
commit c6f672257b
8 changed files with 80 additions and 49 deletions

View file

@ -31,10 +31,9 @@ PHLLS CLayerSurface::create(SP<CLayerShellResource> resource) {
pLS->szNamespace = resource->layerNamespace;
pLS->layer = resource->current.layer;
pLS->popupHead = makeUnique<CPopup>(pLS);
pLS->popupHead->m_pSelf = pLS->popupHead;
pLS->monitor = pMonitor;
pLS->layer = resource->current.layer;
pLS->popupHead = CPopup::create(pLS);
pLS->monitor = pMonitor;
pMonitor->m_aLayerSurfaceLayers[resource->current.layer].emplace_back(pLS);
pLS->forceBlur = g_pConfigManager->shouldBlurLS(pLS->szNamespace);