changeset 18271:589c9ebf84db

merge of '683ac90580e5631dcc8b79c3caea1adc7b92ffec' and '947b20b6fc725a1f22dd7b7b23ebbaee89f0cfed'
author Nathan Walp <nwalp@pidgin.im>
date Sun, 24 Jun 2007 17:52:52 +0000
parents 08ec2f08e38c (current diff) dfe4d0a0a00e (diff)
children 54ad47857b7b b97eb04e8843
files
diffstat 1 files changed, 13 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/pidgin/gtkstatusbox.c	Sun Jun 24 17:31:23 2007 +0000
+++ b/pidgin/gtkstatusbox.c	Sun Jun 24 17:52:52 2007 +0000
@@ -1016,8 +1016,8 @@
 	}
 }
 
-static void
-pidgin_status_box_regenerate(PidginStatusBox *status_box)
+static gboolean
+pidgin_status_box_regenerate_real(PidginStatusBox *status_box)
 {
 	GdkPixbuf *pixbuf, *pixbuf2, *pixbuf3, *pixbuf4, *pixbuf5;
 	GtkIconSize icon_size;
@@ -1081,11 +1081,21 @@
 	}
 	gtk_tree_view_set_model(GTK_TREE_VIEW(status_box->tree_view), GTK_TREE_MODEL(status_box->dropdown_store));
 	gtk_tree_view_set_search_column(GTK_TREE_VIEW(status_box->tree_view), TEXT_COLUMN);
+
+	return FALSE;
+}
+
+static void
+pidgin_status_box_regenerate(PidginStatusBox *status_box)
+{
+	/* we have to do this in a timeout, so we avoid recursing
+	 * to infinity (and beyond) */
+	purple_timeout_add(0, (GSourceFunc)pidgin_status_box_regenerate_real, status_box);
 }
 
 static gboolean combo_box_scroll_event_cb(GtkWidget *w, GdkEventScroll *event, GtkIMHtml *imhtml)
 {
-  	pidgin_status_box_popup(PIDGIN_STATUS_BOX(w));
+	pidgin_status_box_popup(PIDGIN_STATUS_BOX(w));
 	return TRUE;
 }