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

@ -10,11 +10,11 @@ class CXDGPopupResource;
class CPopup {
public:
// dummy head nodes
CPopup(PHLWINDOW pOwner);
CPopup(PHLLS pOwner);
static SP<CPopup> create(PHLWINDOW pOwner);
static SP<CPopup> create(PHLLS pOwner);
// real nodes
CPopup(SP<CXDGPopupResource> popup, WP<CPopup> pOwner);
static SP<CPopup> create(SP<CXDGPopupResource> popup, WP<CPopup> pOwner);
~CPopup();
@ -45,6 +45,8 @@ class CPopup {
bool m_bMapped = false;
private:
CPopup() = default;
// T1 owners, each popup has to have one of these
PHLWINDOWREF m_pWindowOwner;
PHLLSREF m_pLayerOwner;