From 890e34556bc930528e0b4f3086dab1f919ee30c6 Mon Sep 17 00:00:00 2001 From: David Herrmann Date: Mon, 19 Nov 2012 16:03:57 +0100 Subject: [PATCH] seat: allow scheduling dummy session We always considered the dummy session to be no real session. However, under special circumstances it might be desirable to schedule the dummy session (very important for debugging). Therefore, change the logic to allow scheduling the dummy session. Signed-off-by: David Herrmann --- src/kmscon_seat.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/kmscon_seat.c b/src/kmscon_seat.c index 025b495..6e60257 100644 --- a/src/kmscon_seat.c +++ b/src/kmscon_seat.c @@ -350,12 +350,10 @@ static void seat_reschedule(struct kmscon_seat *seat) struct shl_dlist *iter, *start; struct kmscon_session *sess; - if (seat->scheduled_sess && seat->scheduled_sess->enabled && - seat->scheduled_sess != seat->dummy_sess) + if (seat->scheduled_sess && seat->scheduled_sess->enabled) return; - if (seat->current_sess && seat->current_sess->enabled && - seat->current_sess != seat->dummy_sess) { + if (seat->current_sess && seat->current_sess->enabled) { seat->scheduled_sess = seat->current_sess; return; } @@ -1014,8 +1012,10 @@ void kmscon_session_enable(struct kmscon_session *sess) log_debug("enable session %p", sess); sess->enabled = true; - if (sess->seat) { - seat_reschedule(sess->seat); + if (sess->seat && + (!sess->seat->current_sess || + sess->seat->current_sess == sess->seat->dummy_sess)) { + sess->seat->scheduled_sess = sess; if (seat_has_schedule(sess->seat)) seat_switch(sess->seat); } -- 2.7.4