launcher-logind: only get a VT on seat0, as only seat0 supports VTs
As only seat0 supports TTYs, this changes the logind launcher where it detects a TTY, only if the seat is seat0. This has only been tested for logind Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
This commit is contained in:
parent
d68109b960
commit
68220dbac6
@ -762,17 +762,20 @@ launcher_logind_connect(struct weston_launcher **out, struct weston_compositor *
|
|||||||
free(t);
|
free(t);
|
||||||
goto err_session;
|
goto err_session;
|
||||||
}
|
}
|
||||||
free(t);
|
|
||||||
|
|
||||||
r = weston_sd_session_get_vt(wl->sid, &wl->vtnr);
|
r = strcmp(t, "seat0");
|
||||||
if (r < 0) {
|
free(t);
|
||||||
weston_log("logind: session not running on a VT\n");
|
if (r == 0) {
|
||||||
goto err_session;
|
r = weston_sd_session_get_vt(wl->sid, &wl->vtnr);
|
||||||
} else if (tty > 0 && wl->vtnr != (unsigned int )tty) {
|
if (r < 0) {
|
||||||
weston_log("logind: requested VT --tty=%d differs from real session VT %u\n",
|
weston_log("logind: session not running on a VT\n");
|
||||||
tty, wl->vtnr);
|
goto err_session;
|
||||||
r = -EINVAL;
|
} else if (tty > 0 && wl->vtnr != (unsigned int )tty) {
|
||||||
goto err_session;
|
weston_log("logind: requested VT --tty=%d differs from real session VT %u\n",
|
||||||
|
tty, wl->vtnr);
|
||||||
|
r = -EINVAL;
|
||||||
|
goto err_session;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
loop = wl_display_get_event_loop(compositor->wl_display);
|
loop = wl_display_get_event_loop(compositor->wl_display);
|
||||||
|
@ -104,6 +104,10 @@ WL_EXPORT void
|
|||||||
weston_setup_vt_switch_bindings(struct weston_compositor *compositor)
|
weston_setup_vt_switch_bindings(struct weston_compositor *compositor)
|
||||||
{
|
{
|
||||||
uint32_t key;
|
uint32_t key;
|
||||||
|
struct weston_launcher *launcher = compositor->launcher;
|
||||||
|
|
||||||
|
if (launcher->iface->get_vt(launcher) <= 0)
|
||||||
|
return;
|
||||||
|
|
||||||
if (compositor->vt_switching == false)
|
if (compositor->vt_switching == false)
|
||||||
return;
|
return;
|
||||||
|
Loading…
Reference in New Issue
Block a user