diff --git a/src/desktop/LayerSurface.hpp b/src/desktop/LayerSurface.hpp index f2be74599..ab259733f 100644 --- a/src/desktop/LayerSurface.hpp +++ b/src/desktop/LayerSurface.hpp @@ -59,7 +59,7 @@ class CLayerSurface { CBox geometry = {0, 0, 0, 0}; Vector2D position; std::string szNamespace = ""; - SP popupHead; + UP popupHead; void onDestroy(); void onMap(); diff --git a/src/desktop/Popup.cpp b/src/desktop/Popup.cpp index e66cebcd8..4accb58f5 100644 --- a/src/desktop/Popup.cpp +++ b/src/desktop/Popup.cpp @@ -12,24 +12,24 @@ #include "../render/OpenGL.hpp" #include -SP CPopup::create(PHLWINDOW pOwner) { - auto popup = SP(new CPopup()); +UP CPopup::create(PHLWINDOW pOwner) { + auto popup = UP(new CPopup()); popup->m_pWindowOwner = pOwner; popup->m_pSelf = popup; popup->initAllSignals(); return popup; } -SP CPopup::create(PHLLS pOwner) { - auto popup = SP(new CPopup()); +UP CPopup::create(PHLLS pOwner) { + auto popup = UP(new CPopup()); popup->m_pLayerOwner = pOwner; popup->m_pSelf = popup; popup->initAllSignals(); return popup; } -SP CPopup::create(SP resource, WP pOwner) { - auto popup = SP(new CPopup()); +UP CPopup::create(SP resource, WP pOwner) { + auto popup = UP(new CPopup()); popup->m_pResource = resource; popup->m_pWindowOwner = pOwner->m_pWindowOwner; popup->m_pLayerOwner = pOwner->m_pLayerOwner; @@ -282,7 +282,8 @@ void CPopup::recheckTree() { } void CPopup::recheckChildrenRecursive() { - auto cpy = m_vChildren; + std::vector> cpy; + std::ranges::for_each(m_vChildren, [&cpy](const auto& el) { cpy.emplace_back(el); }); for (auto const& c : cpy) { c->onCommit(true); c->recheckChildrenRecursive(); diff --git a/src/desktop/Popup.hpp b/src/desktop/Popup.hpp index a64af7eb5..0bca436c1 100644 --- a/src/desktop/Popup.hpp +++ b/src/desktop/Popup.hpp @@ -10,11 +10,11 @@ class CXDGPopupResource; class CPopup { public: // dummy head nodes - static SP create(PHLWINDOW pOwner); - static SP create(PHLLS pOwner); + static UP create(PHLWINDOW pOwner); + static UP create(PHLLS pOwner); // real nodes - static SP create(SP popup, WP pOwner); + static UP create(SP popup, WP pOwner); ~CPopup(); @@ -64,7 +64,7 @@ class CPopup { bool m_bInert = false; // - std::vector> m_vChildren; + std::vector> m_vChildren; UP m_pSubsurfaceHead; struct { diff --git a/src/desktop/Subsurface.cpp b/src/desktop/Subsurface.cpp index 33ee3553c..db106a09a 100644 --- a/src/desktop/Subsurface.cpp +++ b/src/desktop/Subsurface.cpp @@ -29,6 +29,7 @@ UP CSubsurface::create(WP pOwner) { UP CSubsurface::create(SP pSubsurface, PHLWINDOW pOwner) { auto subsurface = UP(new CSubsurface()); subsurface->m_pWindowParent = pOwner; + subsurface->m_pSubsurface = pSubsurface; subsurface->m_pSelf = subsurface; subsurface->m_pWLSurface = CWLSurface::create(); subsurface->m_pWLSurface->assign(pSubsurface->surface.lock(), subsurface.get()); @@ -40,6 +41,7 @@ UP CSubsurface::create(SP pSubsurface, PHLWI UP CSubsurface::create(SP pSubsurface, WP pOwner) { auto subsurface = UP(new CSubsurface()); subsurface->m_pPopupParent = pOwner; + subsurface->m_pSubsurface = pSubsurface; subsurface->m_pSelf = subsurface; subsurface->m_pWLSurface = CWLSurface::create(); subsurface->m_pWLSurface->assign(pSubsurface->surface.lock(), subsurface.get()); diff --git a/src/desktop/Window.hpp b/src/desktop/Window.hpp index 3573d7ab4..ce2f8eb25 100644 --- a/src/desktop/Window.hpp +++ b/src/desktop/Window.hpp @@ -298,7 +298,7 @@ class CWindow { // desktop components UP m_pSubsurfaceHead; - SP m_pPopupHead; + UP m_pPopupHead; // Animated border CGradientValueData m_cRealBorderColor = {0};