wayland/surface: fixup self-owning surface roles

fixes #7133
This commit is contained in:
Vaxry
2024-08-03 17:58:06 +02:00
parent 9f5a57ff45
commit ae50f8614d
7 changed files with 61 additions and 31 deletions

View File

@@ -443,10 +443,6 @@ CXDGSurfaceResource::~CXDGSurfaceResource() {
surface->resetRole();
}
eSurfaceRole CXDGSurfaceResource::role() {
return SURFACE_ROLE_XDG_SHELL;
}
bool CXDGSurfaceResource::good() {
return resource->resource();
}
@@ -668,7 +664,7 @@ CXDGWMBase::CXDGWMBase(SP<CXdgWmBase> resource_) : resource(resource_) {
RESOURCE->self = RESOURCE;
RESOURCE->surface = SURF;
SURF->role = RESOURCE;
SURF->role = makeShared<CXDGSurfaceRole>(RESOURCE);
surfaces.emplace_back(RESOURCE);
@@ -765,3 +761,7 @@ void CXDGShellProtocol::onPopupDestroy(WP<CXDGPopupResource> popup) {
if (popup->surface)
grab->remove(popup->surface->surface.lock());
}
CXDGSurfaceRole::CXDGSurfaceRole(SP<CXDGSurfaceResource> xdg) : xdgSurface(xdg) {
;
}