summary refs log tree commit diff
path: root/ui.c
diff options
context:
space:
mode:
Diffstat (limited to 'ui.c')
-rw-r--r--ui.c32
1 files changed, 17 insertions, 15 deletions
diff --git a/ui.c b/ui.c
index 0e22fd8..93542dd 100644
--- a/ui.c
+++ b/ui.c
@@ -329,7 +329,8 @@ static void uiView(struct View *view) {
 	if (ui.view) ui.view->mark = true;
 	viewUnmark(view);
 	ui.view = view;
-	uiRead();
+	uiStatus();
+	uiPrompt();
 }
 
 void uiViewTag(struct Tag tag) {
@@ -504,23 +505,10 @@ static bool isCommand(struct Tag tag, const wchar_t *input) {
 	return !extra || (space && extra > space);
 }
 
-void uiRead(void) {
-	uiShow();
-
-	int ret;
-	wint_t ch;
-	while (ERR != (ret = wget_wch(ui.input, &ch))) {
-		if (ret == KEY_CODE_YES) {
-			keyCode(ch);
-		} else {
-			keyChar(ch);
-		}
-	}
-
+void uiPrompt(void) {
 	const wchar_t *input = editHead();
 
 	// TODO: Avoid reformatting these on every read.
-	// FIXME: Reformat when nick changes. Wouldn't FRP be nice?
 	wchar_t *prompt = NULL;
 	int len = 0;
 	if (isAction(ui.view->tag, input) && editTail() >= &input[4]) {
@@ -552,3 +540,17 @@ void uiRead(void) {
 	wclrtoeol(ui.input);
 	wmove(ui.input, 0, x);
 }
+
+void uiRead(void) {
+	uiShow();
+	int ret;
+	wint_t ch;
+	while (ERR != (ret = wget_wch(ui.input, &ch))) {
+		if (ret == KEY_CODE_YES) {
+			keyCode(ch);
+		} else {
+			keyChar(ch);
+		}
+	}
+	uiPrompt();
+}