# HG changeset patch # User Nathan Walp # Date 1182707520 0 # Node ID dfe4d0a0a00e826c768c44562832d2f041cedbd3 # Parent c5c265dff90cc5014b81c3263f3f3dc7858991fe prevent recursive insanity when we don't have an idleaway status diff -r c5c265dff90c -r dfe4d0a0a00e pidgin/gtkstatusbox.c --- a/pidgin/gtkstatusbox.c Sun Jun 24 04:53:36 2007 +0000 +++ b/pidgin/gtkstatusbox.c Sun Jun 24 17:52:00 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; }