empathy r1133 - trunk/libempathy-gtk



Author: xclaesse
Date: Mon Jun  2 09:12:20 2008
New Revision: 1133
URL: http://svn.gnome.org/viewvc/empathy?rev=1133&view=rev

Log:
Do not ref tooltip_widget otherwise it never gets destroyed.


Modified:
   trunk/libempathy-gtk/empathy-contact-list-view.c

Modified: trunk/libempathy-gtk/empathy-contact-list-view.c
==============================================================================
--- trunk/libempathy-gtk/empathy-contact-list-view.c	(original)
+++ trunk/libempathy-gtk/empathy-contact-list-view.c	Mon Jun  2 09:12:20 2008
@@ -117,19 +117,6 @@
 
 G_DEFINE_TYPE (EmpathyContactListView, empathy_contact_list_view, GTK_TYPE_TREE_VIEW);
 
-static void
-contact_list_view_tooltip_destroy_cb (GtkWidget              *widget,
-				      EmpathyContactListView *view)
-{
-	EmpathyContactListViewPriv *priv = GET_PRIV (view);
-
-	DEBUG ("Tooltip destroyed");
-	if (priv->tooltip_widget) {
-		g_object_unref (priv->tooltip_widget);
-		priv->tooltip_widget = NULL;
-	}
-}
-
 static gboolean
 contact_list_view_query_tooltip_cb (EmpathyContactListView *view,
 				    gint                    x,
@@ -162,15 +149,14 @@
 
 	if (!priv->tooltip_widget) {
 		priv->tooltip_widget = empathy_contact_widget_new (contact,
-						EMPATHY_CONTACT_WIDGET_EDIT_NONE);
-		g_object_ref (priv->tooltip_widget);
-		g_signal_connect (priv->tooltip_widget, "destroy",
-				  G_CALLBACK (contact_list_view_tooltip_destroy_cb),
-				  view);
-
+			EMPATHY_CONTACT_WIDGET_EDIT_NONE);
+		g_object_add_weak_pointer (G_OBJECT (priv->tooltip_widget),
+					   (gpointer) &priv->tooltip_widget);
 	} else {
-		empathy_contact_widget_set_contact (priv->tooltip_widget, contact);
+		empathy_contact_widget_set_contact (priv->tooltip_widget,
+						    contact);
 	}
+
 	gtk_tooltip_set_custom (tooltip, priv->tooltip_widget);
 
 	g_object_unref (contact);
@@ -980,10 +966,6 @@
 		g_object_unref (priv->store);
 	}
 
-	if (priv->tooltip_widget) {
-		g_object_unref (priv->tooltip_widget);
-	}
-
 	G_OBJECT_CLASS (empathy_contact_list_view_parent_class)->finalize (object);
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]