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;