xdg: rewrite entire popup implementation
This commit is contained in:
parent
b39dcfa497
commit
2e111c8cf9
13 changed files with 358 additions and 344 deletions
|
|
@ -5,15 +5,17 @@
|
|||
#include "WLSurface.hpp"
|
||||
|
||||
class CWindow;
|
||||
struct SXDGPopup;
|
||||
class CPopup;
|
||||
|
||||
class CSubsurface {
|
||||
public:
|
||||
// root dummy nodes
|
||||
CSubsurface(CWindow* pOwner);
|
||||
CSubsurface(CPopup* pOwner);
|
||||
|
||||
// real nodes
|
||||
CSubsurface(wlr_subsurface* pSubsurface, CWindow* pOwner);
|
||||
CSubsurface(wlr_subsurface* pSubsurface, CPopup* pOwner);
|
||||
|
||||
~CSubsurface();
|
||||
|
||||
|
|
@ -29,7 +31,6 @@ class CSubsurface {
|
|||
void recheckDamageForSubsurfaces();
|
||||
|
||||
private:
|
||||
|
||||
DYNLISTENER(destroySubsurface);
|
||||
DYNLISTENER(commitSubsurface);
|
||||
DYNLISTENER(newSubsurface);
|
||||
|
|
@ -44,9 +45,12 @@ class CSubsurface {
|
|||
CSubsurface* m_pParent = nullptr;
|
||||
|
||||
CWindow* m_pWindowParent = nullptr;
|
||||
CPopup* m_pPopupParent = nullptr;
|
||||
|
||||
std::vector<std::unique_ptr<CSubsurface>> m_vChildren;
|
||||
|
||||
bool m_bInert = false;
|
||||
|
||||
void initSignals();
|
||||
void initExistingSubsurfaces();
|
||||
void checkSiblingDamage();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue