systemd-logind: Fix vt-enter not working when using a legacy video driver
If there is only a single non kms video device (tested with the vesa driver), then we will never get a resume signal for a drm node, so also call vtenter when we get a resume for an input device. Notes: 1) vtenter checks if it is ok to do the vtenter, so if there are kms video devices the calls for input device resumes are a nop 2) This assumes that there will always be at least one server event fd supporting input device. Since all non legacy input-drivers will be patched to supported server fds this seems a safe assumption. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
c6dea929a4
commit
749d25f6f0
|
@ -347,7 +347,6 @@ message_filter(DBusConnection * connection, DBusMessage * message, void *data)
|
||||||
|
|
||||||
if (pdev) {
|
if (pdev) {
|
||||||
pdev->flags &= ~XF86_PDEV_PAUSED;
|
pdev->flags &= ~XF86_PDEV_PAUSED;
|
||||||
systemd_logind_vtenter();
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
pInfo->fd = fd;
|
pInfo->fd = fd;
|
||||||
|
@ -355,6 +354,8 @@ message_filter(DBusConnection * connection, DBusMessage * message, void *data)
|
||||||
if (info->vt_active)
|
if (info->vt_active)
|
||||||
xf86EnableInputDeviceForVTSwitch(pInfo);
|
xf86EnableInputDeviceForVTSwitch(pInfo);
|
||||||
}
|
}
|
||||||
|
/* Always call vtenter(), in case there are only legacy video devs */
|
||||||
|
systemd_logind_vtenter();
|
||||||
}
|
}
|
||||||
return DBUS_HANDLER_RESULT_HANDLED;
|
return DBUS_HANDLER_RESULT_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user