From a65841c3cb2f367448528242b187c699cb97e0a4 Mon Sep 17 00:00:00 2001 From: C. McEnroe Date: Tue, 4 Feb 2020 04:41:11 -0500 Subject: Switch windows with M-0 through M-9 --- ui.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/ui.c b/ui.c index 6a834cd..0c2a64e 100644 --- a/ui.c +++ b/ui.c @@ -369,8 +369,7 @@ static void unmark(void) { statusUpdate(); } -void uiShowID(size_t id) { - struct Window *window = windowFor(id); +static void windowShow(struct Window *window) { touchwin(window->pad); windows.other = windows.active; windows.active = window; @@ -378,6 +377,19 @@ void uiShowID(size_t id) { unmark(); } +void uiShowID(size_t id) { + windowShow(windowFor(id)); +} + +void uiShowNum(size_t num) { + struct Window *window = windows.head; + for (size_t i = 0; i < num; ++i) { + window = window->next; + if (!window) return; + } + windowShow(window); +} + void uiWrite(size_t id, enum Heat heat, const time_t *time, const char *str) { (void)time; struct Window *window = windowFor(id); @@ -417,6 +429,9 @@ static void keyCode(int code) { static void keyMeta(wchar_t ch) { switch (ch) { break; case L'm': uiWrite(windows.active->id, Cold, NULL, ""); + break; default: { + if (ch >= L'0' && ch <= L'9') uiShowNum(ch - L'0'); + } } } -- cgit 1.4.1-2-gfad0