# HG changeset patch # User Mikael Berthe # Date 1301143053 -3600 # Node ID 1d8f9135e000c0a7a468cdc330b9b84ae3effc98 # Parent e6beab22099b132ec9175208b73019aaf5a09e4a Use smarter message flag in the main status line The attention sign (!) is used when a personal message is unread, or if we're highlighted in a MUC room. diff -r e6beab22099b -r 1d8f9135e000 mcabber/mcabber/screen.c --- a/mcabber/mcabber/screen.c Thu Mar 24 20:53:08 2011 +0100 +++ b/mcabber/mcabber/screen.c Sat Mar 26 13:37:33 2011 +0100 @@ -1493,18 +1493,36 @@ { char *sm = from_utf8(xmpp_getstatusmsg()); const char *info = settings_opt_get("info"); + guint prio = 0; + gpointer unread_ptr; + char unreadchar; + + unread_ptr = unread_msg(NULL); + if (unread_ptr) { + prio = buddy_getuiprio(unread_ptr); + // If there's an unerad buffer but no priority set, let's consider the + // priority is 1. + if (!prio && buddy_getflags(unread_ptr) & ROSTER_FLAG_MSG) + prio = 1; + } + + // Status bar unread message flag + if (prio >= ROSTER_UI_PRIO_MUC_HL_MESSAGE) + unreadchar = '!'; + else if (prio > 0) + unreadchar = '#'; + else + unreadchar = ' '; werase(mainstatusWnd); if (info) { char *info_locale = from_utf8(info); - mvwprintw(mainstatusWnd, 0, 0, "%c[%c] %s %s", - (unread_msg(NULL) ? '#' : ' '), + mvwprintw(mainstatusWnd, 0, 0, "%c[%c] %s %s", unreadchar, imstatus2char[xmpp_getstatus()], info_locale, (sm ? sm : "")); g_free(info_locale); } else - mvwprintw(mainstatusWnd, 0, 0, "%c[%c] %s", - (unread_msg(NULL) ? '#' : ' '), + mvwprintw(mainstatusWnd, 0, 0, "%c[%c] %s", unreadchar, imstatus2char[xmpp_getstatus()], (sm ? sm : "")); if (forceupdate) { top_panel(inputPanel);