summaryrefslogtreecommitdiff
path: root/src/protocols/core/Output.cpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2024-07-22 16:56:51 +0200
committerVaxry <vaxry@vaxry.net>2024-07-22 16:56:51 +0200
commit5bae7f150b228d3bf677d09fd0c320328b0d0ff0 (patch)
tree4713f93b61411378071abc08117e2caae137b2ab /src/protocols/core/Output.cpp
parent83a5395eaa99fecef777827fff1de486c06b6180 (diff)
wayland/output: avoid sending events to dead outputs
ref #6835
Diffstat (limited to 'src/protocols/core/Output.cpp')
-rw-r--r--src/protocols/core/Output.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/protocols/core/Output.cpp b/src/protocols/core/Output.cpp
index 4ba23cbe..878d1484 100644
--- a/src/protocols/core/Output.cpp
+++ b/src/protocols/core/Output.cpp
@@ -49,7 +49,7 @@ SP<CWlOutput> CWLOutputResource::getResource() {
}
void CWLOutputResource::updateState() {
- if (!monitor)
+ if (!monitor || (owner && owner->defunct))
return;
if (resource->version() >= 2)
@@ -83,7 +83,8 @@ void CWLOutputProtocol::bindManager(wl_client* client, void* data, uint32_t ver,
return;
}
- RESOURCE->self = RESOURCE;
+ RESOURCE->self = RESOURCE;
+ RESOURCE->owner = self;
}
void CWLOutputProtocol::destroyResource(CWLOutputResource* resource) {