Using a systemd system with logind, DRM-backend works just fine with VT-switching, responding with device_paused() and device_resumed() on the DRM device. On fbdev-backend, VT-switch away from Weston does happen, but Weston is not notified about it at all. This leads to Weston painting over a VT not its own, and probably still getting input, etc. Switching back to Weston's VT freezes the VT completely, until Weston is killed. Killing returns the VT back to normal. parse_active() never gets called, and indeed property_changed() is never called. All these functions are in src/launcher-logind.c. Presumably the rpi-backend suffers the same, did not test.
My systemd is version 226. I tried weston 1.6.91 and even that fails today, even though it is right after David Herrmann's fixes to weston's vt-switching for non-drm backends. I suspect this might be a logind regression instead. Unfortunately I can't point a systemd version where this worked last. This might even be the first time I try weston with logind and fbdev.
Actually, I think the reason why switching back to weston's VT gets stuck is that logind does revoke input devices from weston on switch-out, but weston never tries to get them back on switch in, as neither switch-out or switch-in are signalled in weston. Quentin says he has systemd 229 and cannot reproduce the issue, though he says he has some stuff running that might interfere.
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/wayland/weston/issues/78.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.