summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--src/plugins/irc/irc-bar-item.c33
2 files changed, 36 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 4c29a0b9c..7f404e5d1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,7 @@
WeeChat ChangeLog
=================
Sébastien Helleu <flashcode@flashtux.org>
-v0.3.6-rc1, 2011-10-03
+v0.3.6-rc1, 2011-10-04
Version 0.3.6 (under dev!)
@@ -87,6 +87,8 @@ Version 0.3.6 (under dev!)
description for option when function is called)
* scripts: fix crash with scripts not auto-loaded having a buffer opened after
/upgrade (input/close callbacks for buffer not set properly)
+* irc: fix display of items "away" and "lag" in root bars, refresh all irc bar
+ items on signal "buffer_switch" (bug #34466)
* irc: fix crash on malformed irc notice received (without message after target)
* irc: add missing messages for whois: 223, 264, 343
* irc: use high priority queue for sending modes and wallchops messages
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)
@@ -539,6 +545,31 @@ irc_bar_item_focus_buffer_nicklist (void *data,
}
/*
+ * 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);
}