changeset 23495:0fc1d2df836e

propagate from branch 'im.pidgin.pidgin' (head 5e9671c654b021e77695d4a863fb55e27a831901) to branch 'im.pidgin.cpw.qulogic.msn' (head b062f14d1bcd8e6c28b2b05977aa19a4bfd4867c)
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Sat, 21 Jun 2008 07:36:16 +0000
parents 8ea901db8e34 (diff) c1cba867b3da (current diff)
children 54f7e507ea7d
files
diffstat 2 files changed, 9 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/libpurple/server.c	Sat Jun 21 06:50:53 2008 +0000
+++ b/libpurple/server.c	Sat Jun 21 07:36:16 2008 +0000
@@ -727,6 +727,7 @@
 		PurpleStatusPrimitive primitive;
 		const gchar *auto_reply_pref;
 		const char *away_msg = NULL;
+		gboolean mobile = FALSE;
 
 		auto_reply_pref = purple_prefs_get_string("/purple/away/auto_reply");
 
@@ -734,9 +735,10 @@
 		status = purple_presence_get_active_status(presence);
 		status_type = purple_status_get_type(status);
 		primitive = purple_status_type_get_primitive(status_type);
+		mobile = purple_presence_is_status_primitive_active(presence, PURPLE_STATUS_MOBILE);
 		if ((primitive == PURPLE_STATUS_AVAILABLE) ||
 			(primitive == PURPLE_STATUS_INVISIBLE) ||
-			(primitive == PURPLE_STATUS_MOBILE) ||
+			mobile ||
 		    !strcmp(auto_reply_pref, "never") ||
 		    (!purple_presence_is_idle(presence) && !strcmp(auto_reply_pref, "awayidle")))
 		{
--- a/pidgin/gtkmenutray.c	Sat Jun 21 06:50:53 2008 +0000
+++ b/pidgin/gtkmenutray.c	Sat Jun 21 07:36:16 2008 +0000
@@ -84,19 +84,23 @@
 }
 
 static void
-pidgin_menu_tray_finalize(GObject *obj) {
+pidgin_menu_tray_finalize(GObject *obj)
+{
+	PidginMenuTray *tray = PIDGIN_MENU_TRAY(obj);
 #if 0
 	/* This _might_ be leaking, but I have a sneaking suspicion that the widget is
 	 * getting destroyed in GtkContainer's finalize function.  But if were are
 	 * leaking here, be sure to figure out why this causes a crash.
 	 *	-- Gary
 	 */
-	PidginMenuTray *tray = PIDGIN_MENU_TRAY(obj);
 
 	if(GTK_IS_WIDGET(tray->tray))
 		gtk_widget_destroy(GTK_WIDGET(tray->tray));
 #endif
 
+	if (tray->tooltips)
+		g_object_ref_sink(G_OBJECT(tray->tooltips));
+
 	G_OBJECT_CLASS(parent_class)->finalize(obj);
 }