launcher->base.iface = &launcher_direct_iface;
launcher->compositor = compositor;
- if (setup_tty(launcher, tty) == -1) {
- free(launcher);
- return -1;
+ if (strcmp("seat0", seat_id) == 0) {
+ if (setup_tty(launcher, tty) == -1) {
+ free(launcher);
+ return -1;
+ }
+ } else {
+ launcher->tty = -1;
}
* (struct launcher_direct **) out = launcher;
{
struct launcher_direct *launcher = wl_container_of(launcher_base, launcher, base);
- launcher_direct_restore(&launcher->base);
- wl_event_source_remove(launcher->vt_source);
-
- if (launcher->tty >= 0)
+ if (launcher->tty >= 0) {
+ launcher_direct_restore(&launcher->base);
+ wl_event_source_remove(launcher->vt_source);
close(launcher->tty);
+ }
free(launcher);
}