summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-02-10 22:05:02 -0500
committerJune McEnroe <june@causal.agency>2020-02-10 22:05:02 -0500
commitbf86a4749f93de47d45309028d97ea3a0b7f0c7a (patch)
tree5914b74a7a08f1129fc424d4408babdca12ea0bc
parentOnly write out title if it has changed (diff)
downloadcatgirl-bf86a4749f93de47d45309028d97ea3a0b7f0c7a.tar.gz
catgirl-bf86a4749f93de47d45309028d97ea3a0b7f0c7a.zip
Invalidate title on uiShow
-rw-r--r--ui.c40
1 files changed, 20 insertions, 20 deletions
diff --git a/ui.c b/ui.c
index dcfb607..6c9606d 100644
--- a/ui.c
+++ b/ui.c
@@ -168,23 +168,6 @@ static const char *ExitFocusMode  = "\33[?1004l";
 static const char *EnterPasteMode = "\33[?2004h";
 static const char *ExitPasteMode  = "\33[?2004l";
 
-static bool hidden;
-static bool waiting;
-
-void uiShow(void) {
-	putp(EnterFocusMode);
-	putp(EnterPasteMode);
-	fflush(stdout);
-	hidden = false;
-}
-
-void uiHide(void) {
-	hidden = true;
-	putp(ExitFocusMode);
-	putp(ExitPasteMode);
-	endwin();
-}
-
 // Gain use of C-q, C-s, C-c, C-z, C-y, C-o.
 static void acquireKeys(void) {
 	struct termios term;
@@ -268,7 +251,11 @@ void uiInit(void) {
 	uiShow();
 }
 
+static bool hidden;
+static bool waiting;
+
 static char title[256];
+static char prevTitle[sizeof(title)];
 
 void uiDraw(void) {
 	if (hidden) return;
@@ -293,18 +280,31 @@ void uiDraw(void) {
 		BOTTOM, RIGHT
 	);
 	doupdate();
-	if (!to_status_line) return;
 
-	static char prevTitle[sizeof(title)];
+	if (!to_status_line) return;
 	if (!strcmp(title, prevTitle)) return;
 	strcpy(prevTitle, title);
-
 	putp(to_status_line);
 	putp(title);
 	putp(from_status_line);
 	fflush(stdout);
 }
 
+void uiShow(void) {
+	prevTitle[0] = '\0';
+	putp(EnterFocusMode);
+	putp(EnterPasteMode);
+	fflush(stdout);
+	hidden = false;
+}
+
+void uiHide(void) {
+	hidden = true;
+	putp(ExitFocusMode);
+	putp(ExitPasteMode);
+	endwin();
+}
+
 struct Style {
 	attr_t attr;
 	enum Color fg, bg;