Mercurial > ~mikael > mcabber > hg
diff mcabber/mcabber/screen.c @ 2190:ee3a40ffcd8b
New option: 'clear_unread_on_carbon'
If the new 'clear_unread_on_carbon' option is set to 1, clear the unread
message flag for a contact whenever an outgoing carbon copy of a message
sent to that contact is received from another client.
---
mcabber/mcabber/commands.c | 2 +-
mcabber/mcabber/hbuf.h | 1 +
mcabber/mcabber/hooks.c | 17 ++++++++++++-----
mcabber/mcabber/hooks.h | 2 +-
mcabber/mcabber/screen.c | 18 ++++++++++++++----
mcabber/mcabber/xmpp.c | 2 +-
mcabber/mcabberrc.example | 5 +++++
7 files changed, 35 insertions(+), 12 deletions(-)
author | Holger Weiß <holger@zedat.fu-berlin.de> |
---|---|
date | Thu, 23 Jul 2015 23:44:45 +0200 |
parents | bc10fc4eced7 |
children | 902f271743b0 |
line wrap: on
line diff
--- a/mcabber/mcabber/screen.c Sun Oct 04 19:07:17 2015 +0200 +++ b/mcabber/mcabber/screen.c Thu Jul 23 23:44:45 2015 +0200 @@ -1468,6 +1468,7 @@ int special; guint num_history_blocks; bool setmsgflg = FALSE; + bool clearmsgflg = FALSE; char *nicktmp, *nicklocaltmp; // Look for the window entry. @@ -1539,12 +1540,21 @@ scr_update_window(win_entry); top_panel(inputPanel); update_panels(); + } else if (settings_opt_get_int("clear_unread_on_carbon") && + prefix_flags & HBB_PREFIX_OUT && + prefix_flags & HBB_PREFIX_CARBON) { + clearmsgflg = TRUE; } else if (!(prefix_flags & HBB_PREFIX_NOFLAG)) { setmsgflg = TRUE; } - if (setmsgflg && !special) { - roster_msg_setflag(winId, FALSE, TRUE); - update_roster = TRUE; + if (!special) { + if (clearmsgflg) { + roster_msg_setflag(winId, FALSE, FALSE); + update_roster = TRUE; + } else if (setmsgflg) { + roster_msg_setflag(winId, FALSE, TRUE); + update_roster = TRUE; + } } } @@ -2317,7 +2327,7 @@ { if (!(prefix & ~HBB_PREFIX_NOFLAG & ~HBB_PREFIX_HLIGHT & ~HBB_PREFIX_HLIGHT_OUT & - ~HBB_PREFIX_PGPCRYPT & ~HBB_PREFIX_OTRCRYPT)) + ~HBB_PREFIX_PGPCRYPT & ~HBB_PREFIX_OTRCRYPT & ~HBB_PREFIX_CARBON)) prefix |= HBB_PREFIX_IN; scr_write_message(jidfrom, text, timestamp, prefix, mucnicklen, NULL);