From 90c284bded5b7630600c2e8e06a81c8e871799ac Mon Sep 17 00:00:00 2001 From: Brian Ashworth Date: Mon, 13 May 2019 10:43:35 -0400 Subject: [PATCH] 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`. --- backend/session/logind.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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);