From 804551122a3f56d623485e66c6b2188e6a784fab Mon Sep 17 00:00:00 2001 From: Sebastien Helleu Date: Fri, 29 Oct 2010 18:41:06 +0200 Subject: [PATCH] Use function nicklist_nick_set to change nick color (instead of removing/adding nick in nicklist) --- src/plugins/irc/irc-nick.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/plugins/irc/irc-nick.c b/src/plugins/irc/irc-nick.c index ae6ee1faf..f368aab90 100644 --- a/src/plugins/irc/irc-nick.c +++ b/src/plugins/irc/irc-nick.c @@ -406,6 +406,24 @@ irc_nick_nicklist_remove (struct t_irc_server *server, nick->name)); } +/* + * irc_nick_nicklist_set: set a property for nick in buffer nicklist + */ + +void +irc_nick_nicklist_set (struct t_irc_channel *channel, + struct t_irc_nick *nick, + const char *property, const char *value) +{ + struct t_gui_nick *ptr_nick; + + ptr_nick = weechat_nicklist_search_nick (channel->buffer, NULL, nick->name); + if (ptr_nick) + { + weechat_nicklist_nick_set (channel->buffer, ptr_nick, property, value); + } +} + /* * irc_nick_get_prefix_color_name: return name of color with a prefix number */ @@ -700,9 +718,10 @@ irc_nick_set_away (struct t_irc_server *server, struct t_irc_channel *channel, { if ((is_away && !nick->away) || (!is_away && nick->away)) { - irc_nick_nicklist_remove (server, channel, nick); nick->away = is_away; - irc_nick_nicklist_add (server, channel, nick); + irc_nick_nicklist_set (channel, nick, "color", + (nick->away) ? + "weechat.color.nicklist_away" : "bar_fg"); } } }