changeset 654:d7fe7b88e4fc

MUC: Set the new_message flag when joining a room
author Mikael Berthe <mikael@lilotux.net>
date Sat, 07 Jan 2006 12:17:49 +0100
parents d5db5be78eb0
children de6837908702
files mcabber/src/jabglue.c mcabber/src/screen.c mcabber/src/screen.h
diffstat 3 files changed, 12 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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();