# HG changeset patch # User Luke Schierer # Date 1052084853 0 # Node ID 399390d745141a7051ff2965f62ce9ae3c2a4aa5 # Parent d579d5367836418a6de07eca2d22ff3e8ec477e3 [gaim-migrate @ 5667] (17:45:56) deryni: http://deryni.perlmonk.org/idle_timer.diff <- turns off the 30 second update timer when 'show idle times' is off (it shouldn't affect anything else) committer: Tailor Script diff -r d579d5367836 -r 399390d74514 src/gtkblist.c --- a/src/gtkblist.c Sun May 04 03:32:18 2003 +0000 +++ b/src/gtkblist.c Sun May 04 21:47:33 2003 +0000 @@ -1242,6 +1242,8 @@ { GaimBlistNode *group, *buddy; + gaim_debug(GAIM_DEBUG_INFO, "refresh_timer", "called\n"); + for(group = list->root; group; group = group->next) { if(!GAIM_BLIST_NODE_IS_GROUP(group)) continue; @@ -1506,7 +1508,8 @@ gaim_gtk_blist_update_toolbar(); /* start the refresh timer */ - gtkblist->refresh_timer = g_timeout_add(30000, (GSourceFunc)gaim_gtk_blist_refresh_timer, list); + if (blist_options & OPT_BLIST_SHOW_IDLETIME) + gtkblist->refresh_timer = g_timeout_add(30000, (GSourceFunc)gaim_gtk_blist_refresh_timer, list); } void gaim_gtk_blist_refresh(struct gaim_buddy_list *list) @@ -1523,6 +1526,25 @@ } } +void +gaim_gtk_blist_update_refresh_timeout() +{ + struct gaim_buddy_list *blist; + struct gaim_gtk_buddy_list *gtkblist; + + gaim_debug(GAIM_DEBUG_INFO, "update_refresh_timeout", "called\n"); + + blist = gaim_get_blist(); + gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); + + if (blist_options & OPT_BLIST_SHOW_IDLETIME) { + gtkblist->refresh_timer = g_timeout_add(30000, (GSourceFunc)gaim_gtk_blist_refresh_timer, blist); + } else { + g_source_remove(gtkblist->refresh_timer); + gtkblist->refresh_timer = 0; + } +} + static gboolean get_iter_from_node(GaimBlistNode *node, GtkTreeIter *iter) { struct _gaim_gtk_blist_node *gtknode = (struct _gaim_gtk_blist_node *)node->ui_data; GtkTreePath *path; diff -r d579d5367836 -r 399390d74514 src/prefs.c --- a/src/prefs.c Sun May 04 03:32:18 2003 +0000 +++ b/src/prefs.c Sun May 04 21:47:33 2003 +0000 @@ -1974,18 +1974,22 @@ gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); blist_options ^= option; - + if (!gtkblist) return; - - if (option == OPT_BLIST_SHOW_WARN || - option == OPT_BLIST_SHOW_IDLETIME) + + if (option == OPT_BLIST_SHOW_WARN) gaim_gtk_blist_update_columns(); + else if (option == OPT_BLIST_SHOW_IDLETIME) { + gaim_gtk_blist_update_refresh_timeout(); + gaim_gtk_blist_update_columns(); + } else if (option == OPT_BLIST_SHOW_ICONS) { gaim_gtk_blist_refresh(gaim_get_blist()); gaim_gtk_blist_update_columns(); } else gaim_gtk_blist_refresh(gaim_get_blist()); + } static void set_convo_option(GtkWidget *w, int option)