diff options
author | June McEnroe <june@causal.agency> | 2020-02-04 04:41:11 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2020-02-04 04:41:11 -0500 |
commit | a65841c3cb2f367448528242b187c699cb97e0a4 (patch) | |
tree | 867e713a6efa889f7ebfd84fd237fb329af0f64a /ui.c | |
parent | Factor out unmark (diff) | |
download | test-a65841c3cb2f367448528242b187c699cb97e0a4.tar.gz test-a65841c3cb2f367448528242b187c699cb97e0a4.zip |
Switch windows with M-0 through M-9
Diffstat (limited to 'ui.c')
-rw-r--r-- | ui.c | 19 |
1 files 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'); + } } } |