diff --git a/src/fe-text/statusbar-items.c b/src/fe-text/statusbar-items.c index 3b21d11b..137e7417 100644 --- a/src/fe-text/statusbar-items.c +++ b/src/fe-text/statusbar-items.c @@ -596,6 +596,7 @@ static void sig_mainwindow_created(MAIN_WINDOW_REC *window) window->statusbar = statusbar_create(STATUSBAR_POS_MIDDLE, window->first_line+window->height); + ((STATUSBAR_REC *) window->statusbar)->window = window; sidebar_add_items(window); } diff --git a/src/fe-text/statusbar.c b/src/fe-text/statusbar.c index 2404c1a1..8e99c4fe 100644 --- a/src/fe-text/statusbar.c +++ b/src/fe-text/statusbar.c @@ -133,9 +133,14 @@ static void statusbar_get_sizes(STATUSBAR_REC *bar, int max_width) static void statusbar_redraw_line(STATUSBAR_REC *bar) { + WINDOW_REC *old_active_win; GSList *tmp; int xpos, rxpos; + old_active_win = active_win; + if (bar->window != NULL) + active_win = bar->window->active; + statusbar_get_sizes(bar, COLS-2); xpos = 1; @@ -159,6 +164,8 @@ static void statusbar_redraw_line(STATUSBAR_REC *bar) rec->func(rec, FALSE); } } + + active_win = old_active_win; } static void statusbar_redraw_all(void) diff --git a/src/fe-text/statusbar.h b/src/fe-text/statusbar.h index 5a00eaa7..32d35b82 100644 --- a/src/fe-text/statusbar.h +++ b/src/fe-text/statusbar.h @@ -1,6 +1,8 @@ #ifndef __STATUSBAR_H #define __STATUSBAR_H +#include "mainwindows.h" + #define SBAR_PRIORITY_HIGH 100 #define SBAR_PRIORITY_NORMAL 0 #define SBAR_PRIORITY_LOW -100 @@ -15,6 +17,8 @@ typedef struct SBAR_ITEM_REC SBAR_ITEM_REC; typedef void (*STATUSBAR_FUNC) (SBAR_ITEM_REC *item, int get_size_only); typedef struct { + MAIN_WINDOW_REC *window; + int pos; int line;