diff options
author | Curtis McEnroe | 2019-02-25 14:09:06 -0500 |
---|---|---|
committer | Curtis McEnroe | 2019-02-25 14:09:06 -0500 |
commit | 23ec3fd1b71be21316678d87be5beeac2c9b2df4 (patch) | |
tree | 1d047e9528e6f69d7ac2d5009799e8fb71789bf5 /ui.c | |
parent | 9d6f9d76c3c57dd2da5f4b2fcab7526d520a9fd4 (diff) |
Add M-a to switch to hot or unread window
Diffstat (limited to 'ui.c')
-rw-r--r-- | ui.c | 14 |
1 files changed, 14 insertions, 0 deletions
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); |