MUC: Set the new_message flag when joining a room
authorMikael Berthe <mikael@lilotux.net>
Sat, 07 Jan 2006 12:17:49 +0100
changeset 654 d7fe7b88e4fc
parent 653 d5db5be78eb0
child 655 de6837908702
MUC: Set the new_message flag when joining a room
mcabber/src/jabglue.c
mcabber/src/screen.c
mcabber/src/screen.h
--- 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();