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`.
This commit is contained in:
Brian Ashworth 2019-05-13 10:43:35 -04:00
parent 107a1789ea
commit 90c284bded

View file

@ -274,7 +274,7 @@ static int pause_device(sd_bus_message *msg, void *userdata,
goto error; goto error;
} }
if (major == DRM_MAJOR) { if (major == DRM_MAJOR && strcmp(type, "gone") != 0) {
assert(session->has_drm); assert(session->has_drm);
session->base.active = false; session->base.active = false;
wlr_signal_emit_safe(&session->base.session_signal, session); wlr_signal_emit_safe(&session->base.session_signal, session);