Mercurial > pidgin.yaz
changeset 18270:dfe4d0a0a00e
prevent recursive insanity when we don't have an idleaway status
author | Nathan Walp <nwalp@pidgin.im> |
---|---|
date | Sun, 24 Jun 2007 17:52:00 +0000 |
parents | c5c265dff90c |
children | 589c9ebf84db c77cf4e8eb65 |
files | pidgin/gtkstatusbox.c |
diffstat | 1 files changed, 13 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- 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; }