# HG changeset patch # User Nathan Walp # Date 1182707572 0 # Node ID 589c9ebf84db64c8e73e19279565da55b1f4fb49 # Parent 08ec2f08e38cc0e0f9eba03553a9792436b07883# Parent dfe4d0a0a00e826c768c44562832d2f041cedbd3 merge of '683ac90580e5631dcc8b79c3caea1adc7b92ffec' and '947b20b6fc725a1f22dd7b7b23ebbaee89f0cfed' diff -r 08ec2f08e38c -r 589c9ebf84db pidgin/gtkstatusbox.c --- 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; }