summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ui.c29
1 files changed, 20 insertions, 9 deletions
diff --git a/ui.c b/ui.c
index 3e9b95d..023de21 100644
--- a/ui.c
+++ b/ui.c
@@ -21,6 +21,7 @@
 #include <curses.h>
 #include <err.h>
 #include <errno.h>
+#include <limits.h>
 #include <signal.h>
 #include <stdarg.h>
 #include <stdbool.h>
@@ -848,19 +849,29 @@ static void showAuto(void) {
 	if (windows.swap != swap) {
 		swap = windows.show;
 	}
+	uint minHot = UINT_MAX, numHot;
+	uint minWarm = UINT_MAX, numWarm;
 	for (uint num = 0; num < windows.len; ++num) {
-		if (windows.ptrs[num]->heat < Hot) continue;
-		windowShow(num);
-		windows.swap = swap;
-		return;
+		if (windows.ptrs[num]->heat >= Hot) {
+			if (windows.ptrs[num]->unreadWarm >= minHot) continue;
+			minHot = windows.ptrs[num]->unreadWarm;
+			numHot = num;
+		}
+		if (windows.ptrs[num]->heat >= Warm) {
+			if (windows.ptrs[num]->unreadWarm >= minWarm) continue;
+			minWarm = windows.ptrs[num]->unreadWarm;
+			numWarm = num;
+		}
 	}
-	for (uint num = 0; num < windows.len; ++num) {
-		if (windows.ptrs[num]->heat < Warm) continue;
-		windowShow(num);
+	if (minHot < UINT_MAX) {
+		windowShow(numHot);
 		windows.swap = swap;
-		return;
+	} else if (minWarm < UINT_MAX) {
+		windowShow(numWarm);
+		windows.swap = swap;
+	} else {
+		windowShow(windows.swap);
 	}
-	windowShow(windows.swap);
 }
 
 static void keyCode(int code) {
d=e7f73d66da51be79776c9c28ed4738a5635a1c8a&follow=1'>Error on invalid ISUPPORT values 1.2June McEnroe 2020-04-05Only set RCS on FreeBSDJune McEnroe 2020-04-05Log bans and unbansJune McEnroe 2020-04-05Parse mode types from ISUPPORTJune McEnroe 2020-04-05Add unscoop matchers for ban/unban eventsJune McEnroe 2020-04-05Check unscoop regexps with make testJune McEnroe 2020-04-05Add unscoop -n flag for checking regexpsJune McEnroe 2020-04-05Add Ban and Unban event typesJune McEnroe 2020-04-02Update styleJune McEnroe 2020-03-31Update unscoop catgirl matchersJune McEnroe 2020-03-31Fix writing verbose to stderrJune McEnroe 2020-03-02Include <>/-/* around nicks in scoop coloring 1.1June McEnroe 2020-03-02Replace .mk files with configure scriptJune McEnroe 2020-02-28Implement the causal.agency/consumer capabilityJune McEnroe 2020-02-22Include <>/-/* around nicks in coloringJune McEnroe 2020-02-22Use (almost) the full range of IRC colors for nicksJune McEnroe