summary refs log tree commit diff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--catgirl.16
-rw-r--r--ui.c14
2 files changed, 18 insertions, 2 deletions
diff --git a/catgirl.1 b/catgirl.1
index 7988e9d..2638d6f 100644
--- a/catgirl.1
+++ b/catgirl.1
@@ -1,4 +1,4 @@
-.Dd February 23, 2019
+.Dd February 25, 2019
 .Dt CATGIRL 1
 .Os
 .
@@ -300,7 +300,9 @@ Redraw the UI.
 .It Ic C-n
 Switch to the next window.
 .It Ic C-p
-Swittch to the previous window.
+Switch to the previous window.
+.It Ic M-a
+Switch to next hot or unread window.
 .It Ic M-m
 Insert a blank line in the window.
 .It Ic M- Ns Ar n
diff --git a/ui.c b/ui.c
index e31e824..ab519b6 100644
--- a/ui.c
+++ b/ui.c
@@ -367,6 +367,19 @@ void uiShowNum(int num, bool relative) {
 	uiPrompt(false);
 }
 
+static void uiShowAuto(void) {
+	struct Window *unread = NULL;
+	struct Window *hot;
+	for (hot = windows.head; hot; hot = hot->next) {
+		if (hot->hot) break;
+		if (!unread && hot->unread) unread = hot;
+	}
+	if (!hot && !unread) return;
+	windowShow(hot ? hot : unread);
+	uiStatus();
+	uiPrompt(false);
+}
+
 void uiCloseTag(struct Tag tag) {
 	windowClose(windowFor(tag));
 	uiStatus();
@@ -447,6 +460,7 @@ static void keyCode(wchar_t code) {
 static void keyMeta(wchar_t ch) {
 	struct Window *win = windows.active;
 	if (ch >= L'0' && ch <= L'9') uiShowNum(ch - L'0', false);
+	if (ch == L'a') uiShowAuto();
 	if (!win) return;
 	switch (ch) {
 		break; case L'b':  edit(win->tag, EditBackWord, 0);
June McEnroe 2019-12-21Add READMEJune McEnroe 2019-12-21Add copyright header to git-fetch-emailJune McEnroe 2019-12-21Add git-fetch-email to SEE ALSO of imboxJune McEnroe 2019-12-21Add git-fetch-email wrapperJune McEnroe 2019-12-21Determine host by SRV lookupJune McEnroe 2019-12-21Clean up remaining codeJune McEnroe 2019-12-21Clean up mboxrd codeJune McEnroe 2019-12-21Convert CRLF to LFJune McEnroe 2019-12-21Implement -CFSTJune McEnroe 2019-12-21Rewrite aspirational manualJune McEnroe 2019-12-21Null-terminate read literalsJune McEnroe