diff options
Diffstat (limited to 'irc_im.c')
-rw-r--r-- | irc_im.c | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -147,9 +147,16 @@ static gboolean bee_irc_user_status(bee_t *bee, bee_user_t *bu, bee_user_t *old) bee_irc_channel_update(irc, NULL, iu); + /* If away-notify enabled, send status updates when: + * Away or Online state changes + * Status changes (e.g. "Away" to "Mobile") + * Status message changes + */ if ((irc->caps & CAP_AWAY_NOTIFY) && ((bu->flags & BEE_USER_AWAY) != (old->flags & BEE_USER_AWAY) || - (bu->flags & BEE_USER_ONLINE) != (old->flags & BEE_USER_ONLINE))) { + (bu->flags & BEE_USER_ONLINE) != (old->flags & BEE_USER_ONLINE) || + (g_strcmp0(bu->status, old->status) != 0) || + (g_strcmp0(bu->status_msg, old->status_msg) != 0))) { irc_send_away_notify(iu); } |