Only write out title on uiDraw

master
C. McEnroe 2020-02-10 21:24:30 -05:00
parent 47a0bf7fc2
commit 90eff04eda
1 changed files with 15 additions and 7 deletions

22
ui.c
View File

@ -268,6 +268,8 @@ void uiInit(void) {
uiShow(); uiShow();
} }
static char title[256];
void uiDraw(void) { void uiDraw(void) {
if (hidden) return; if (hidden) return;
wnoutrefresh(status); wnoutrefresh(status);
@ -291,6 +293,12 @@ void uiDraw(void) {
BOTTOM, RIGHT BOTTOM, RIGHT
); );
doupdate(); doupdate();
if (!to_status_line) return;
putp(to_status_line);
putp(title);
putp(from_status_line);
fflush(stdout);
} }
struct Style { struct Style {
@ -396,21 +404,21 @@ static void statusUpdate(void) {
statusAdd(buf); statusAdd(buf);
} }
wclrtoeol(status); wclrtoeol(status);
if (!to_status_line) return;
window = windows.active; window = windows.active;
putp(to_status_line); snprintf(title, sizeof(title), "%s %s", self.network, idNames[window->id]);
printf("%s %s", self.network, idNames[window->id]);
if (window->mark && window->unreadCount) { if (window->mark && window->unreadCount) {
printf( snprintf(
&title[strlen(title)], sizeof(title) - strlen(title),
" (%d%s)", window->unreadCount, (window->heat > Warm ? "!" : "") " (%d%s)", window->unreadCount, (window->heat > Warm ? "!" : "")
); );
} }
if (otherUnread) { if (otherUnread) {
printf(" (+%d%s)", otherUnread, (otherHeat > Warm ? "!" : "")); snprintf(
&title[strlen(title)], sizeof(title) - strlen(title),
" (+%d%s)", otherUnread, (otherHeat > Warm ? "!" : "")
);
} }
putp(from_status_line);
fflush(stdout);
} }
static void mark(struct Window *window) { static void mark(struct Window *window) {