From 3444585150a2f88ccfe92ba5f3959961428d597c Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Mon, 12 Feb 2007 16:15:51 -0500 Subject: use the supplied vt number when updating active session Just the use vt number given by the vt-manager instead of asking for the current vt again. A little bit less racy this way. --- src/ck-seat.c | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) (limited to 'src/ck-seat.c') diff --git a/src/ck-seat.c b/src/ck-seat.c index a0e6d09..0d56416 100644 --- a/src/ck-seat.c +++ b/src/ck-seat.c @@ -338,6 +338,23 @@ change_active_session (CkSeat *seat, g_free (ssid); } +static void +update_active_vt (CkSeat *seat, + guint num) +{ + CkSession *session; + char *device; + + device = g_strdup_printf ("/dev/tty%u", num); + + ck_debug ("Active device: %s", device); + + session = find_session_for_display_device (seat, device); + change_active_session (seat, session); + + g_free (device); +} + static void maybe_update_active_session (CkSeat *seat) { @@ -348,17 +365,7 @@ maybe_update_active_session (CkSeat *seat) } if (ck_vt_monitor_get_active (seat->priv->vt_monitor, &num, NULL)) { - CkSession *session; - char *device; - - device = g_strdup_printf ("/dev/tty%u", num); - - ck_debug ("Active device: %s", device); - - session = find_session_for_display_device (seat, device); - change_active_session (seat, session); - - g_free (device); + update_active_vt (seat, num); } } @@ -476,7 +483,7 @@ active_vt_changed (CkVtMonitor *vt_monitor, { ck_debug ("Active vt changed: %u", num); - maybe_update_active_session (seat); + update_active_vt (seat, num); } static gboolean -- cgit