| 2880 gtk_tree_row_reference_free(gtknode->row); |
2880 gtk_tree_row_reference_free(gtknode->row); |
| 2881 gtknode->row = NULL; |
2881 gtknode->row = NULL; |
| 2882 } |
2882 } |
| 2883 |
2883 |
| 2884 static void |
2884 static void |
| 2885 signed_on_off_cb(GaimConnection *gc, GaimBuddyList *blist) |
2885 sign_on_off_cb(GaimConnection *gc, GaimBuddyList *blist) |
| 2886 { |
2886 { |
| 2887 GaimGtkBuddyList *gtkblist = GAIM_GTK_BLIST(blist); |
2887 GaimGtkBuddyList *gtkblist = GAIM_GTK_BLIST(blist); |
| |
2888 GtkWidget *widget; |
| 2888 |
2889 |
| 2889 gaim_gtk_blist_update_protocol_actions(); |
2890 gaim_gtk_blist_update_protocol_actions(); |
| 2890 gaim_gtkpounce_menu_build(gtkblist->bpmenu); |
2891 gaim_gtkpounce_menu_build(gtkblist->bpmenu); |
| |
2892 |
| |
2893 widget = gtk_item_factory_get_widget(gtkblist->ift, N_("/Tools/Room List")); |
| |
2894 gtk_widget_set_sensitive(widget, gaim_roomlist_is_showable()); |
| 2891 } |
2895 } |
| 2892 |
2896 |
| 2893 /* this is called on all sorts of signals, and we have no reason to pass |
2897 /* this is called on all sorts of signals, and we have no reason to pass |
| 2894 * it anything, so it remains without arguments. If you need anything |
2898 * it anything, so it remains without arguments. If you need anything |
| 2895 * more specific, do as below, and create another callback that calls |
2899 * more specific, do as below, and create another callback that calls |
| 3242 GINT_TO_POINTER( |
3246 GINT_TO_POINTER( |
| 3243 gaim_prefs_connect_callback("/gaim/gtk/blist/show_warning_level", |
3247 gaim_prefs_connect_callback("/gaim/gtk/blist/show_warning_level", |
| 3244 gaim_gtk_blist_update_columns, NULL))); |
3248 gaim_gtk_blist_update_columns, NULL))); |
| 3245 |
3249 |
| 3246 /* Setup some gaim signal handlers. */ |
3250 /* Setup some gaim signal handlers. */ |
| 3247 gaim_signal_connect(gaim_connections_get_handle(), "signing-on", |
3251 gaim_signal_connect(gaim_connections_get_handle(), "signed-on", |
| 3248 gtkblist, GAIM_CALLBACK(signed_on_off_cb), list); |
3252 gtkblist, GAIM_CALLBACK(sign_on_off_cb), list); |
| 3249 gaim_signal_connect(gaim_connections_get_handle(), "signing-off", |
3253 gaim_signal_connect(gaim_connections_get_handle(), "signed-off", |
| 3250 gtkblist, GAIM_CALLBACK(signed_on_off_cb), list); |
3254 gtkblist, GAIM_CALLBACK(sign_on_off_cb), list); |
| 3251 |
3255 |
| 3252 /* emit our created signal */ |
3256 /* emit our created signal */ |
| 3253 gaim_signal_emit(gaim_gtk_blist_get_handle(), "gtkblist-created", list); |
3257 gaim_signal_emit(gaim_gtk_blist_get_handle(), "gtkblist-created", list); |
| 3254 } |
3258 } |
| 3255 |
3259 |
| 3735 static void gaim_gtk_blist_destroy(GaimBuddyList *list) |
3739 static void gaim_gtk_blist_destroy(GaimBuddyList *list) |
| 3736 { |
3740 { |
| 3737 if (!gtkblist) |
3741 if (!gtkblist) |
| 3738 return; |
3742 return; |
| 3739 |
3743 |
| 3740 gaim_signal_disconnect(gaim_connections_get_handle(), "signing-on", |
3744 gaim_signal_disconnect(gaim_connections_get_handle(), "signed-on", |
| 3741 gtkblist, GAIM_CALLBACK(signed_on_off_cb)); |
3745 gtkblist, GAIM_CALLBACK(sign_on_off_cb)); |
| 3742 gaim_signal_disconnect(gaim_connections_get_handle(), "signing-off", |
3746 gaim_signal_disconnect(gaim_connections_get_handle(), "signed-off", |
| 3743 gtkblist, GAIM_CALLBACK(signed_on_off_cb)); |
3747 gtkblist, GAIM_CALLBACK(sign_on_off_cb)); |
| 3744 |
3748 |
| 3745 gtk_widget_destroy(gtkblist->window); |
3749 gtk_widget_destroy(gtkblist->window); |
| 3746 |
3750 |
| 3747 gaim_gtk_blist_tooltip_destroy(); |
3751 gaim_gtk_blist_tooltip_destroy(); |
| 3748 |
3752 |