aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Ashworth <bosrsf04@gmail.com>2019-05-13 10:43:35 -0400
committerBrian Ashworth <bosrsf04@gmail.com>2019-05-13 10:43:35 -0400
commit90c284bded5b7630600c2e8e06a81c8e871799ac (patch)
tree9def86b0f8ad8bfbc9ac960817396cce0b24e587
parent107a1789eab550240fc01e84f896055e487ab216 (diff)
session/logind: keep active for pause_device gone
This appears to be a quick fix for compositors freezing when a dock is disconnected. Disconnection of the dock is causing `pause_device` for the DRM devices associated with the dock. Since these devices major number is `DRM_MAJOR`, the session was being set to inactive. This just makes it so the session is not set to inactive when the device's state is `gone`.
-rw-r--r--backend/session/logind.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/backend/session/logind.c b/backend/session/logind.c
index 8f4e328d..03db78f0 100644
--- a/backend/session/logind.c
+++ b/backend/session/logind.c
@@ -274,7 +274,7 @@ static int pause_device(sd_bus_message *msg, void *userdata,
goto error;
}
- if (major == DRM_MAJOR) {
+ if (major == DRM_MAJOR && strcmp(type, "gone") != 0) {
assert(session->has_drm);
session->base.active = false;
wlr_signal_emit_safe(&session->base.session_signal, session);