On Tue, 23 Jan 2018 22:15:45 -0500
nerdopolis <bluescreen_aven...@verizon.net> wrote:

> 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
> ---
>  libweston/launcher-logind.c | 22 ++++++++++++----------
>  libweston/launcher-util.c   |  4 ++++
>  2 files changed, 16 insertions(+), 10 deletions(-)
> 
> diff --git a/libweston/launcher-logind.c b/libweston/launcher-logind.c
> index 21d8c37b..875db70f 100644
> --- a/libweston/launcher-logind.c
> +++ b/libweston/launcher-logind.c
> @@ -769,18 +769,20 @@ launcher_logind_connect(struct weston_launcher **out, 
> struct weston_compositor *
>               free(t);
>               goto err_session;
>       }
> -     free(t);
>  
> -     r = weston_sd_session_get_vt(wl->sid, &wl->vtnr);
> -     if (r < 0) {
> -             weston_log("logind: session not running on a VT\n");
> -             goto err_session;
> -     } else if (tty > 0 && wl->vtnr != (unsigned int )tty) {
> -             weston_log("logind: requested VT --tty=%d differs from real 
> session VT %u\n",
> -                        tty, wl->vtnr);
> -             r = -EINVAL;
> -             goto err_session;
> +     if (!strcmp(t, "seat0")) {
> +             r = weston_sd_session_get_vt(wl->sid, &wl->vtnr);
> +             if (r < 0) {
> +                     weston_log("logind: session not running on a VT\n");
> +                     goto err_session;
> +             } else if (tty > 0 && wl->vtnr != (unsigned int )tty) {
> +                     weston_log("logind: requested VT --tty=%d differs from 
> real session VT %u\n",
> +                                tty, wl->vtnr);
> +                     r = -EINVAL;
> +                     goto err_session;
> +             }
>       }
> +     free(t);
>  
>       loop = wl_display_get_event_loop(compositor->wl_display);
>       r = weston_dbus_open(loop, DBUS_BUS_SYSTEM, &wl->dbus, &wl->dbus_ctx);
> diff --git a/libweston/launcher-util.c b/libweston/launcher-util.c
> index 96a0ba6f..777ab755 100644
> --- a/libweston/launcher-util.c
> +++ b/libweston/launcher-util.c
> @@ -111,6 +111,10 @@ WL_EXPORT void
>  weston_setup_vt_switch_bindings(struct weston_compositor *compositor)
>  {
>       uint32_t key;
> +     struct weston_launcher *launcher = compositor->launcher;
> +
> +     if (launcher->iface->get_vt(launcher) == 0)
> +             return;

Hi,

the get_vt vfunc can also return negative on error, maybe that should
prevent VT-switching bindings as well?

With or without that change, this patch is:
Reviewed-by: Pekka Paalanen <pekka.paala...@collabora.co.uk>

>  
>       if (compositor->vt_switching == false)
>               return;

Thanks,
pq

Attachment: pgpOfWfpLA5sC.pgp
Description: OpenPGP digital signature

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to