Merge Franky's contrib scripts
authorMikael Berthe <mikael@lilotux.net>
Sat, 06 Jan 2007 12:15:28 +0100
changeset 1119 c68b3c9f616e
parent 1116 14e458020e23 (diff)
parent 1118 71422d407a34 (current diff)
child 1120 c15e935a3b3f
Merge Franky's contrib scripts
--- a/mcabber/src/hooks.c	Fri Jan 05 17:41:42 2007 +0100
+++ b/mcabber/src/hooks.c	Sat Jan 06 12:15:28 2007 +0100
@@ -65,6 +65,7 @@
         wmsg = mmsg = g_strdup_printf("*%s %s", resname, msg+4);
     }
   } else {
+    bmsg = g_strdup(msg);
     if (!strncmp(msg, COMMAND_ME, strlen(COMMAND_ME)))
       wmsg = mmsg = g_strdup_printf("*%s %s", bjid, msg+4);
     else
--- a/mcabber/src/screen.c	Fri Jan 05 17:41:42 2007 +0100
+++ b/mcabber/src/screen.c	Sat Jan 06 12:15:28 2007 +0100
@@ -1372,13 +1372,19 @@
     prefix |= HBB_PREFIX_IN;
 
   scr_WriteMessage(jidfrom, text, timestamp, prefix);
-  update_panels();
 }
 
 void scr_WriteOutgoingMessage(const char *jidto, const char *text, guint prefix)
 {
+  GSList *roster_elt;
+  roster_elt = roster_find(jidto, jidsearch,
+                           ROSTER_TYPE_USER|ROSTER_TYPE_AGENT|ROSTER_TYPE_ROOM);
+
   scr_WriteMessage(jidto, text, 0, prefix|HBB_PREFIX_OUT|HBB_PREFIX_HLIGHT);
-  scr_ShowWindow(jidto, FALSE);
+
+  // Show jidto's buffer unless the buddy is not in the buddylist
+  if (roster_elt && g_list_position(buddylist, roster_elt->data) != -1)
+    scr_ShowWindow(jidto, FALSE);
 }
 
 static inline void set_autoaway(bool setaway)