From b228bb30f5c89767db42e5cd27ae11143b456bb6 Mon Sep 17 00:00:00 2001 From: Emanuele Giaquinta Date: Mon, 4 Jun 2007 09:59:03 +0000 Subject: [PATCH] Change active_window to select, when there is more than one window with the highest data level, the window with the lowest refnum. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4538 dbcabf3a-b0e7-0310-adc4-f8d773084564 --- src/fe-common/core/window-commands.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/fe-common/core/window-commands.c b/src/fe-common/core/window-commands.c index 26678a90..8ffeb046 100644 --- a/src/fe-common/core/window-commands.c +++ b/src/fe-common/core/window-commands.c @@ -249,11 +249,11 @@ static WINDOW_REC *window_highest_activity(WINDOW_REC *window) { WINDOW_REC *rec, *max_win; GSList *tmp; - int max_act, through; + int max_act, max_ref, through; g_return_val_if_fail(window != NULL, NULL); - max_win = NULL; max_act = 0; through = FALSE; + max_win = NULL; max_act = 0; max_ref = 0; through = FALSE; tmp = g_slist_find(windows, window); for (;; tmp = tmp->next) { @@ -267,9 +267,12 @@ static WINDOW_REC *window_highest_activity(WINDOW_REC *window) rec = tmp->data; - if (rec->data_level > 0 && max_act < rec->data_level) { + if (rec->data_level > 0 && + (rec->data_level > max_act || + (rec->data_level == max_act && rec->refnum < max_ref))) { max_act = rec->data_level; max_win = rec; + max_ref = rec->refnum; } }