From 58c32e4249c3c462e8e12ae7d2f428fbf73b5b21 Mon Sep 17 00:00:00 2001 From: Sebastien Helleu Date: Tue, 4 Oct 2011 10:32:56 +0200 Subject: irc: fix display of items "away" and "lag" in root bars, refresh all irc bar items on signal "buffer_switch" (bug #34466) --- src/plugins/irc/irc-bar-item.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'src/plugins/irc') diff --git a/src/plugins/irc/irc-bar-item.c b/src/plugins/irc/irc-bar-item.c index 99a190cc1..42fc5abd3 100644 --- a/src/plugins/irc/irc-bar-item.c +++ b/src/plugins/irc/irc-bar-item.c @@ -54,6 +54,9 @@ irc_bar_item_away (void *data, struct t_gui_bar_item *item, buf = NULL; + if (!window) + window = weechat_current_window (); + buffer = weechat_window_get_pointer (window, "buffer"); if (buffer) @@ -387,6 +390,9 @@ irc_bar_item_lag (void *data, struct t_gui_bar_item *item, (void) data; (void) item; + if (!window) + window = weechat_current_window (); + buffer = weechat_window_get_pointer (window, "buffer"); if (buffer) @@ -538,6 +544,31 @@ irc_bar_item_focus_buffer_nicklist (void *data, return NULL; } +/* + * irc_bar_item_buffer_switch: called on "buffer_switch" signal: refresh irc + * bar items (for root bars) + */ + +int +irc_bar_item_buffer_switch (void *data, const char *signal, + const char *type_data, void *signal_data) +{ + /* make C compiler happy */ + (void) data; + (void) signal; + (void) type_data; + (void) signal_data; + + weechat_bar_item_update ("away"); + weechat_bar_item_update ("buffer_title"); + weechat_bar_item_update ("buffer_name"); + weechat_bar_item_update ("irc_channel"); + weechat_bar_item_update ("lag"); + weechat_bar_item_update ("input_prompt"); + + return WEECHAT_RC_OK; +} + /* * irc_bar_item_init: initialize IRC bar items */ @@ -554,4 +585,6 @@ irc_bar_item_init () weechat_bar_item_new ("input_prompt", &irc_bar_item_input_prompt, NULL); weechat_hook_focus ("buffer_nicklist", &irc_bar_item_focus_buffer_nicklist, NULL); + weechat_hook_signal ("buffer_switch", + &irc_bar_item_buffer_switch, NULL); } -- cgit v1.2.3