From c36af7eb8d6d7c393bb41751affb7ba2ab6ba1cf Mon Sep 17 00:00:00 2001 From: Sebastien Helleu Date: Sun, 25 Jan 2009 09:05:13 +0100 Subject: [PATCH] Fix unread marker set with irc /away command: set unread marker for all servers/channels that are not displayed in a window --- src/gui/gui-buffer.c | 2 ++ src/plugins/irc/irc-command.c | 10 +++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/gui/gui-buffer.c b/src/gui/gui-buffer.c index b2a1bd3ac..191fbb596 100644 --- a/src/gui/gui-buffer.c +++ b/src/gui/gui-buffer.c @@ -523,6 +523,8 @@ gui_buffer_get_integer (struct t_gui_buffer *buffer, const char *property) { if (string_strcasecmp (property, "number") == 0) return buffer->number; + else if (string_strcasecmp (property, "num_displayed") == 0) + return buffer->num_displayed; else if (string_strcasecmp (property, "notify") == 0) return buffer->notify; else if (string_strcasecmp (property, "lines_hidden") == 0) diff --git a/src/plugins/irc/irc-command.c b/src/plugins/irc/irc-command.c index ec2c974ce..d687fbed4 100644 --- a/src/plugins/irc/irc-command.c +++ b/src/plugins/irc/irc-command.c @@ -292,16 +292,20 @@ irc_command_away_server (struct t_irc_server *server, const char *arguments, free (string); } irc_server_set_away (server, server->nick, 1); - + /* reset "unread" indicator on server and channels/pv buffers */ if (reset_unread_marker) { if (!weechat_config_boolean (irc_config_look_one_server_buffer)) - weechat_buffer_set (server->buffer, "unread", ""); + { + if (weechat_buffer_get_integer (server->buffer, "num_displayed") > 0) + weechat_buffer_set (server->buffer, "unread", ""); + } for (ptr_channel = server->channels; ptr_channel; ptr_channel = ptr_channel->next_channel) { - weechat_buffer_set (ptr_channel->buffer, "unread", ""); + if (weechat_buffer_get_integer (ptr_channel->buffer, "num_displayed") > 0) + weechat_buffer_set (ptr_channel->buffer, "unread", ""); } } }