diff finch/gntrequest.c @ 18347:a90f9a0b90c8

Update search-api to not crash. Searching for users in xmpp/oscar works now.
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Fri, 29 Jun 2007 01:52:09 +0000
parents f23a7736586f
children 719f73b9a593 576edd9c4f72
line wrap: on
line diff
--- a/finch/gntrequest.c	Fri Jun 29 00:49:12 2007 +0000
+++ b/finch/gntrequest.c	Fri Jun 29 01:52:09 2007 +0000
@@ -74,6 +74,7 @@
 static void
 setup_default_callback(GntWidget *window, gpointer default_cb, gpointer data)
 {
+	g_object_set_data(G_OBJECT(window), "default-callback", default_cb);
 	g_signal_connect_swapped(G_OBJECT(window), "destroy", G_CALLBACK(default_cb), data);
 }
 
@@ -81,7 +82,9 @@
 action_performed(GntWidget *button, gpointer data)
 {
 	g_signal_handlers_disconnect_matched(data, G_SIGNAL_MATCH_FUNC,
-			0, 0, NULL, setup_default_callback, NULL);
+			0, 0, NULL,
+			g_object_get_data(data, "default-callback"),
+			 NULL);
 }
 
 /**
@@ -110,8 +113,8 @@
 		gnt_box_add_widget(GNT_BOX(box), button);
 		g_object_set_data(G_OBJECT(button), "activate-callback", callback);
 		g_object_set_data(G_OBJECT(button), "activate-userdata", userdata);
+		g_signal_connect(G_OBJECT(button), "activate", G_CALLBACK(action_performed), win);
 		g_signal_connect(G_OBJECT(button), "activate", G_CALLBACK(cb), data);
-		g_signal_connect(G_OBJECT(button), "activate", G_CALLBACK(action_performed), win);
 	}
 
 	va_end(list);