[PATCH] Re-enable non serverfd input devices immediately on vtenter

Hans de Goede hdegoede at redhat.com
Wed Apr 8 05:07:52 PDT 2015


Non serverfd input devices will never get a systemd-logind dbus resume signal,
causing them to never get re-enabled.

This commit changes xf86VTEnter() to enable them immediately, fixing this.

BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=89756
Signed-off-by: Hans de Goede <hdegoede at redhat.com>
---
 hw/xfree86/common/xf86Events.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c
index c06aaae..97a1f97 100644
--- a/hw/xfree86/common/xf86Events.c
+++ b/hw/xfree86/common/xf86Events.c
@@ -583,10 +583,11 @@ xf86VTEnter(void)
     /* Turn screen saver off when switching back */
     dixSaveScreens(serverClient, SCREEN_SAVER_FORCER, ScreenSaverReset);
 
-    /* If we use systemd-logind it will enable input devices for us */
-    if (!systemd_logind_controls_session())
-        for (pInfo = xf86InputDevs; pInfo; pInfo = pInfo->next)
+    for (pInfo = xf86InputDevs; pInfo; pInfo = pInfo->next) {
+        /* Devices with server managed fds get enabled on logind resume */
+        if (!(pInfo->flags & XI86_SERVER_FD))
             xf86EnableInputDeviceForVTSwitch(pInfo);
+    }
 
     for (ih = InputHandlers; ih; ih = ih->next) {
         if (ih->is_input)
-- 
2.3.4



More information about the xorg-devel mailing list