summary refs log tree commit diff
diff options
context:
space:
mode:
Diffstat (limited to '')
-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) {
e to v2.22.0Christian Hesse 2019-06-25ui-tree: allow per repository override for enable-blameChristian Hesse 2019-06-05tests: successfully validate rc versionsChristian Hesse 2019-06-05git: update to v2.21.0Christian Hesse 2019-06-05ui-ssdiff: ban strncat()Christian Hesse 2019-06-05global: make 'char *path' const where possibleChristian Hesse 2019-05-20ui-shared: restrict to 15 levelsJason A. Donenfeld 2019-02-23ui-diff,ui-tag: don't use htmlf with non-formatted stringsChris Mayo 2019-02-23ui-ssdiff: resolve HTML5 validation errorsChris Mayo 2019-01-03filters: migrate from luacrypto to luaosslJason A. Donenfeld 2019-01-02ui-shared: fix broken sizeof in title setting and rewriteJason A. Donenfeld 2018-12-09git: update to v2.20.0Christian Hesse 2018-11-25ui-blame: set repo for sbJason A. Donenfeld 2018-11-25auth-filter: pass url with query string attachedJason A. Donenfeld 2018-11-21git: use xz compressed archive for downloadChristian Hesse 2018-10-12git: update to v2.19.1Christian Hesse 2018-09-11ui-ssdiff: ban strcat()Christian Hesse 2018-09-11ui-ssdiff: ban strncpy()Christian Hesse 2018-09-11ui-shared: ban strcat()Christian Hesse 2018-09-11ui-patch: ban sprintf()Christian Hesse 2018-09-11ui-log: ban strncpy()Christian Hesse 2018-09-11ui-log: ban strcpy()Christian Hesse 2018-09-11parsing: ban sprintf()Christian Hesse 2018-09-11parsing: ban strncpy()Christian Hesse 2018-08-28filters: generate anchor links from markdownChristian Hesse 2018-08-03Bump version.Jason A. Donenfeld 2018-08-03clone: fix directory traversalJason A. Donenfeld 2018-08-03config: record repo.snapshot-prefix in the per-repo configKonstantin Ryabitsev