ev->handled = true;
if (!seat->conf->session_control)
return;
- ret = kmscon_terminal_register(&s, seat);
+ ret = kmscon_terminal_register(&s, seat,
+ uterm_vt_get_num(seat->vt));
if (ret == -EOPNOTSUPP) {
log_notice("terminal support not compiled in");
} else if (ret) {
}
if (seat->conf->terminal_session) {
- ret = kmscon_terminal_register(&s, seat);
+ ret = kmscon_terminal_register(&s, seat,
+ uterm_vt_get_num(seat->vt));
if (ret == -EOPNOTSUPP)
log_notice("terminal support not compiled in");
else if (ret)
}
int kmscon_terminal_register(struct kmscon_session **out,
- struct kmscon_seat *seat)
+ struct kmscon_seat *seat, unsigned int vtnr)
{
struct kmscon_terminal *term;
int ret;
if (ret)
goto err_pty;
+ if (vtnr > 0) {
+ ret = kmscon_pty_set_vtnr(term->pty, vtnr);
+ 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);
#ifdef BUILD_ENABLE_SESSION_TERMINAL
int kmscon_terminal_register(struct kmscon_session **out,
- struct kmscon_seat *seat);
+ struct kmscon_seat *seat,
+ unsigned int vtnr);
#else /* !BUILD_ENABLE_SESSION_TERMINAL */
static inline int kmscon_terminal_register(struct kmscon_session **out,
- struct kmscon_seat *seat)
+ struct kmscon_seat *seat,
+ unsigned int vtnr)
{
return -EOPNOTSUPP;
}