From 55757243f48da0f0c6d2382ffe57d364c7b803c9 Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Tue, 4 Feb 2020 20:46:16 -0500 Subject: Call inputUpdate when switching windows Because changing windows (to or ) will affect the prompt. --- ui.c | 44 +++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) (limited to 'ui.c') diff --git a/ui.c b/ui.c index 568df8d..172120b 100644 --- a/ui.c +++ b/ui.c @@ -325,27 +325,6 @@ static void unmark(void) { statusUpdate(); } -static void windowShow(struct Window *window) { - touchwin(window->pad); - windows.other = windows.active; - windows.active = window; - windows.other->mark = true; - 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); -} - static int wordWidth(const char *str) { size_t len = strcspn(str, " "); int width = 0; @@ -462,6 +441,7 @@ static void inputUpdate(void) { NULL ); if (self.nick) { + // TODO: Check if input is command or action. waddch(input, '<'); waddstr(input, self.nick); waddstr(input, "> "); @@ -476,6 +456,28 @@ static void inputUpdate(void) { wmove(input, y, x); } +static void windowShow(struct Window *window) { + touchwin(window->pad); + windows.other = windows.active; + windows.active = window; + windows.other->mark = true; + inputUpdate(); + 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); +} + static void keyCode(int code) { switch (code) { break; case KEY_RESIZE:; // TODO -- cgit 1.4.1