if (ret)
goto err_input;
- ret = kmscon_ui_new(&seat->ui, app->eloop, seat->input);
+ ret = kmscon_ui_new(&seat->ui, app->eloop, seat->input, seat->sname);
if (ret)
goto err_vt;
int kmscon_terminal_new(struct kmscon_terminal **out,
struct ev_eloop *loop,
- struct uterm_input *input)
+ struct uterm_input *input,
+ const char *seat)
{
struct kmscon_terminal *term;
int ret;
if (ret)
goto err_pty;
+ ret = kmscon_pty_set_seat(term->pty, seat);
+ if (ret)
+ goto err_pty;
+
ret = ev_eloop_new_fd(term->eloop, &term->ptyfd,
kmscon_pty_get_fd(term->pty),
EV_READABLE, pty_event, term);
int kmscon_terminal_new(struct kmscon_terminal **out,
struct ev_eloop *loop,
- struct uterm_input *input);
+ struct uterm_input *input,
+ const char *seat);
void kmscon_terminal_ref(struct kmscon_terminal *term);
void kmscon_terminal_unref(struct kmscon_terminal *term);
int kmscon_ui_new(struct kmscon_ui **out,
struct ev_eloop *eloop,
- struct uterm_input *input)
+ struct uterm_input *input,
+ const char *seat)
{
struct kmscon_ui *ui;
int ret;
ui->input = input;
shl_dlist_init(&ui->video_list);
- ret = kmscon_terminal_new(&ui->term, eloop, ui->input);
+ ret = kmscon_terminal_new(&ui->term, eloop, ui->input, seat);
if (ret)
goto err_free;
int kmscon_ui_new(struct kmscon_ui **out,
struct ev_eloop *eloop,
- struct uterm_input *input);
+ struct uterm_input *input,
+ const char *seat);
void kmscon_ui_free(struct kmscon_ui *ui);
void kmscon_ui_add_video(struct kmscon_ui *ui, struct uterm_video *video);
void kmscon_ui_remove_video(struct kmscon_ui *ui, struct uterm_video *video);