Invalidate title on uiShow

master
C. McEnroe 2020-02-10 22:05:02 -05:00
parent 66fe89b84b
commit bf86a4749f
1 changed files with 20 additions and 20 deletions

40
ui.c
View File

@ -168,23 +168,6 @@ static const char *ExitFocusMode = "\33[?1004l";
static const char *EnterPasteMode = "\33[?2004h"; static const char *EnterPasteMode = "\33[?2004h";
static const char *ExitPasteMode = "\33[?2004l"; 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. // Gain use of C-q, C-s, C-c, C-z, C-y, C-o.
static void acquireKeys(void) { static void acquireKeys(void) {
struct termios term; struct termios term;
@ -268,7 +251,11 @@ void uiInit(void) {
uiShow(); uiShow();
} }
static bool hidden;
static bool waiting;
static char title[256]; static char title[256];
static char prevTitle[sizeof(title)];
void uiDraw(void) { void uiDraw(void) {
if (hidden) return; if (hidden) return;
@ -293,18 +280,31 @@ void uiDraw(void) {
BOTTOM, RIGHT BOTTOM, RIGHT
); );
doupdate(); doupdate();
if (!to_status_line) return;
static char prevTitle[sizeof(title)]; if (!to_status_line) return;
if (!strcmp(title, prevTitle)) return; if (!strcmp(title, prevTitle)) return;
strcpy(prevTitle, title); strcpy(prevTitle, title);
putp(to_status_line); putp(to_status_line);
putp(title); putp(title);
putp(from_status_line); putp(from_status_line);
fflush(stdout); 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 { struct Style {
attr_t attr; attr_t attr;
enum Color fg, bg; enum Color fg, bg;