changeset 513:d40c434fff46

Add HBB_PREFIX_NOFLAG A line with this attribute won't trigger a notification flag. This patch adds use of it for joins, leaves, nickname changes and topic changes.
author Mikael Berthe <mikael@lilotux.net>
date Sun, 13 Nov 2005 22:15:19 +0100
parents 1744664332cd
children 979eb0fe2969
files mcabber/src/hbuf.h mcabber/src/jabglue.c mcabber/src/screen.c
diffstat 3 files changed, 12 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/mcabber/src/hbuf.h	Sun Nov 13 17:03:59 2005 +0100
+++ b/mcabber/src/hbuf.h	Sun Nov 13 22:15:19 2005 +0100
@@ -20,6 +20,7 @@
 #define HBB_PREFIX_AUTH     8
 #define HBB_PREFIX_INFO    16
 #define HBB_PREFIX_ERR     32
+#define HBB_PREFIX_NOFLAG  64
 
 typedef struct {
   time_t timestamp;
--- a/mcabber/src/jabglue.c	Sun Nov 13 17:03:59 2005 +0100
+++ b/mcabber/src/jabglue.c	Sun Nov 13 22:15:19 2005 +0100
@@ -890,7 +890,8 @@
               // Display inside the room window
               mbuf = g_strdup_printf("%s has set the topic to: %s", r,
                                      (subj_noutf8 ? subj_noutf8 : "(?)"));
-              scr_WriteIncomingMessage(s, mbuf, 0, HBB_PREFIX_INFO);
+              scr_WriteIncomingMessage(s, mbuf, 0,
+                                       HBB_PREFIX_INFO|HBB_PREFIX_NOFLAG);
               if (settings_opt_get_int("log_muc_conf"))
                 hlog_write_message(s, 0, FALSE, mbuf);
               if (subj_noutf8) g_free(subj_noutf8);
@@ -1167,7 +1168,8 @@
               gchar *newname_noutf8 = from_utf8(mbnewnick);
               mbuf = g_strdup_printf("%s is now known as %s", rname,
                       (newname_noutf8 ? newname_noutf8 : "(?)"));
-              scr_WriteIncomingMessage(r, mbuf, 0, HBB_PREFIX_INFO);
+              scr_WriteIncomingMessage(r, mbuf, 0,
+                                       HBB_PREFIX_INFO|HBB_PREFIX_NOFLAG);
               if (log_muc_conf) hlog_write_message(r, 0, FALSE, mbuf);
               g_free(mbuf);
               if (newname_noutf8) {
@@ -1185,7 +1187,8 @@
             gchar *mbuf;
             if (s)  mbuf = g_strdup_printf("%s has left: %s", rname, s);
             else    mbuf = g_strdup_printf("%s has left", rname);
-            scr_WriteIncomingMessage(r, mbuf, 0, HBB_PREFIX_INFO);
+            scr_WriteIncomingMessage(r, mbuf, 0,
+                                     HBB_PREFIX_INFO|HBB_PREFIX_NOFLAG);
             if (log_muc_conf) hlog_write_message(r, 0, FALSE, mbuf);
             g_free(mbuf);
           } else if (buddy_getstatus(room_elt->data, rname) == offline &&
@@ -1197,7 +1200,8 @@
             } else {
               mbuf = g_strdup_printf("%s has joined", rname);
             }
-            scr_WriteIncomingMessage(r, mbuf, 0, HBB_PREFIX_INFO);
+            scr_WriteIncomingMessage(r, mbuf, 0,
+                                     HBB_PREFIX_INFO|HBB_PREFIX_NOFLAG);
             if (log_muc_conf) hlog_write_message(r, 0, FALSE, mbuf);
             g_free(mbuf);
           }
--- a/mcabber/src/screen.c	Sun Nov 13 17:03:59 2005 +0100
+++ b/mcabber/src/screen.c	Sun Nov 13 22:15:19 2005 +0100
@@ -528,7 +528,7 @@
     top_panel(inputPanel);
     update_panels();
     doupdate();
-  } else {
+  } else if (!(prefix_flags & HBB_PREFIX_NOFLAG)) {
     roster_msg_setflag(winId, TRUE);
     update_roster = TRUE;
   }
@@ -789,7 +789,8 @@
 void scr_WriteIncomingMessage(const char *jidfrom, const char *text,
         time_t timestamp, guint prefix)
 {
-  if (!prefix) prefix = HBB_PREFIX_IN;
+  if (!(prefix & ~HBB_PREFIX_NOFLAG))
+    prefix |= HBB_PREFIX_IN;
   // FIXME expand tabs / filter out special chars...
   scr_WriteMessage(jidfrom, text, timestamp, prefix);
   update_panels();