diff options
Diffstat (limited to 'daemon/gdm-session-worker.c')
-rw-r--r-- | daemon/gdm-session-worker.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c index cc565a4c..aa824bcf 100644 --- a/daemon/gdm-session-worker.c +++ b/daemon/gdm-session-worker.c @@ -664,7 +664,7 @@ gdm_session_worker_process_pam_message (GdmSessionWorker *worker, char *user_answer; gboolean res; char *utf8_msg; - char *msg; + char *msg; if (response != NULL) { *response = NULL; @@ -954,7 +954,8 @@ out: static void jump_to_vt (GdmSessionWorker *worker, - int vt_number) + int vt_number, + gboolean take_control) { int fd; int active_vt_tty_fd; @@ -990,7 +991,8 @@ jump_to_vt (GdmSessionWorker *worker, fd = active_vt_tty_fd; } - handle_terminal_vt_switches (worker, fd); + if (take_control) + handle_terminal_vt_switches (worker, fd); if (ioctl (fd, VT_GETSTATE, &vt_state) < 0) { g_debug ("GdmSessionWorker: couldn't get current VT: %m"); @@ -1053,7 +1055,7 @@ gdm_session_worker_uninitialize_pam (GdmSessionWorker *worker, if (g_strcmp0 (worker->priv->display_seat_id, "seat0") == 0) { if (worker->priv->login_vt != worker->priv->session_vt) { - jump_to_vt (worker, worker->priv->login_vt); + jump_to_vt (worker, worker->priv->login_vt, FALSE); } } @@ -2007,7 +2009,7 @@ gdm_session_worker_start_session (GdmSessionWorker *worker, * ready, and in the reuse server case, we're already on the correct VT. */ if (g_strcmp0 (worker->priv->display_seat_id, "seat0") == 0) { if (worker->priv->display_mode == GDM_SESSION_DISPLAY_MODE_NEW_VT) { - jump_to_vt (worker, worker->priv->session_vt); + jump_to_vt (worker, worker->priv->session_vt, TRUE); } } |