diff options
author | marha <marha@users.sourceforge.net> | 2014-03-09 21:32:55 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2014-03-09 21:32:55 +0100 |
commit | 3dd4b6420f686b0147d5b8136268cc63196e253b (patch) | |
tree | 2c81c3f7503dbcfb5b64fd95b40bb1c2204598ef /xorg-server/hw/xfree86/common/xf86Events.c | |
parent | 321c01267ae1c446f1bd22b642567fcafa016c02 (diff) | |
download | vcxsrv-3dd4b6420f686b0147d5b8136268cc63196e253b.tar.gz vcxsrv-3dd4b6420f686b0147d5b8136268cc63196e253b.tar.bz2 vcxsrv-3dd4b6420f686b0147d5b8136268cc63196e253b.zip |
fontconfig mesa xserver git update 9 Mar 2014
xserver commit 1c61d38528a573caadee2468ee59ea558c822e09
fontconfig commit f8ccf379eb1092592ae0b65deb563c5491f69de9
mesa commit 897f40f25d21af678b1b67c1a68c4a6722d19983
Diffstat (limited to 'xorg-server/hw/xfree86/common/xf86Events.c')
-rw-r--r-- | xorg-server/hw/xfree86/common/xf86Events.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/xorg-server/hw/xfree86/common/xf86Events.c b/xorg-server/hw/xfree86/common/xf86Events.c index 7b53949fa..06af73903 100644 --- a/xorg-server/hw/xfree86/common/xf86Events.c +++ b/xorg-server/hw/xfree86/common/xf86Events.c @@ -85,6 +85,8 @@ #endif #include "xf86platformBus.h" +#include "systemd-logind.h" + /* * This is a toggling variable: * FALSE = No VT switching keys have been pressed last time around @@ -556,8 +558,11 @@ xf86VTEnter(void) /* Turn screen saver off when switching back */ dixSaveScreens(serverClient, SCREEN_SAVER_FORCER, ScreenSaverReset); - for (pInfo = xf86InputDevs; pInfo; pInfo = pInfo->next) - xf86EnableInputDeviceForVTSwitch(pInfo); + /* If we use systemd-logind it will enable input devices for us */ + if (!systemd_logind_controls_session()) + for (pInfo = xf86InputDevs; pInfo; pInfo = pInfo->next) + xf86EnableInputDeviceForVTSwitch(pInfo); + for (ih = InputHandlers; ih; ih = ih->next) { if (ih->is_input) xf86EnableInputHandler(ih); @@ -589,10 +594,14 @@ xf86VTSwitch(void) /* * Since all screens are currently all in the same state it is sufficient * check the first. This might change in future. + * + * VTLeave is always handled here (VT_PROCESS guarantees this is safe), + * if we use systemd_logind xf86VTEnter() gets called by systemd-logind.c + * once it has resumed all drm nodes. */ if (xf86VTOwner()) xf86VTLeave(); - else + else if (!systemd_logind_controls_session()) xf86VTEnter(); } |