--- a/mcabber/src/jabglue.c Sat Jan 07 11:01:58 2006 +0100
+++ b/mcabber/src/jabglue.c Sat Jan 07 12:17:49 2006 +0100
@@ -1149,6 +1149,8 @@
// However, this could be a presence packet from another room member
buddy_setinsideroom(room_elt->data, TRUE);
+ // Set the message flag unless we're already in the room buffer window
+ scr_setmsgflag_if_needed(roomjid);
// Add a message to the tracelog file
mbuf = g_strdup_printf("You have joined %s as \"%s\"", roomjid, ournick);
scr_LogPrint(LPRINT_LOGNORM, "%s", mbuf);
--- a/mcabber/src/screen.c Sat Jan 07 11:01:58 2006 +0100
+++ b/mcabber/src/screen.c Sat Jan 07 12:17:49 2006 +0100
@@ -1241,6 +1241,15 @@
return multimode;
}
+// scr_setmsgflag_if_needed(jid)
+// Set the message flag unless we're already in the jid buffer window
+void scr_setmsgflag_if_needed(const char *jid)
+{
+ if (!chatmode || !current_buddy ||
+ strcmp(jid, buddy_getjid(BUDDATA(current_buddy))))
+ roster_msg_setflag(jid, TRUE);
+}
+
// scr_set_multimode()
// Public function to (un)set multimode...
// Convention:
--- a/mcabber/src/screen.h Sat Jan 07 11:01:58 2006 +0100
+++ b/mcabber/src/screen.h Sat Jan 07 12:17:49 2006 +0100
@@ -35,6 +35,7 @@
inline void scr_set_chatmode(int enable);
inline void scr_set_multimode(int enable);
inline int scr_get_multimode();
+void scr_setmsgflag_if_needed(const char *jid);
void scr_append_multiline(const char *line);
inline const char *scr_get_multiline();