From 3a2cc3b937009809a006c0c0a3b772eb1de46a02 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Thu, 10 Aug 2000 20:50:06 +0000 Subject: [PATCH] Topic bar doesn't get erased anymore after resize. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@582 dbcabf3a-b0e7-0310-adc4-f8d773084564 --- src/fe-text/screen.c | 2 +- src/fe-text/statusbar-items.c | 1 + src/fe-text/statusbar.c | 5 ++++- src/fe-text/statusbar.h | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/fe-text/screen.c b/src/fe-text/screen.c index 4d6f101c..59d1383a 100644 --- a/src/fe-text/screen.c +++ b/src/fe-text/screen.c @@ -65,7 +65,7 @@ static void sig_winch(int p) /* Resize curses terminal */ ychange = ws.ws_row-LINES; xchange = ws.ws_col-COLS; -#ifdef xHAVE_CURSES_RESIZETERM +#ifdef HAVE_CURSES_RESIZETERM resizeterm(ws.ws_row, ws.ws_col); #else deinit_screen(); diff --git a/src/fe-text/statusbar-items.c b/src/fe-text/statusbar-items.c index 6de94017..df1f36eb 100644 --- a/src/fe-text/statusbar-items.c +++ b/src/fe-text/statusbar-items.c @@ -719,6 +719,7 @@ static void topicbar_create(void) topic_bar = statusbar_create(STATUSBAR_POS_UP, 0); topic_item = statusbar_item_create(topic_bar, 0, FALSE, statusbar_topic); + topic_item->max_size = TRUE; statusbar_redraw(topic_bar); signal_add("window changed", (SIGNAL_FUNC) sig_statusbar_topic_redraw); diff --git a/src/fe-text/statusbar.c b/src/fe-text/statusbar.c index baf191a6..efaa7f59 100644 --- a/src/fe-text/statusbar.c +++ b/src/fe-text/statusbar.c @@ -56,8 +56,11 @@ static void statusbar_redraw_line(STATUSBAR_REC *bar) for (tmp = bar->items; tmp != NULL; tmp = tmp->next) { SBAR_ITEM_REC *rec = tmp->data; - if (!rec->right_justify && xpos+rec->size < COLS) { + if (!rec->right_justify && + (rec->max_size || xpos+rec->size < COLS)) { rec->xpos = xpos; + if (rec->max_size) + rec->size = COLS-1-xpos; func = (STATUSBAR_FUNC) rec->func; func(rec, bar->ypos); diff --git a/src/fe-text/statusbar.h b/src/fe-text/statusbar.h index 3ca133ef..f8011dbe 100644 --- a/src/fe-text/statusbar.h +++ b/src/fe-text/statusbar.h @@ -19,7 +19,7 @@ typedef struct { STATUSBAR_REC *bar; int xpos, size; - int right_justify; + int right_justify, max_size; void *func; } SBAR_ITEM_REC;