# HG changeset patch # User Mark Doliner # Date 1147025064 0 # Node ID 2eea3265dbe62a0b6a6edfb46a9a55dba66d1b10 # Parent 74033e0831bc002f4cb19d2378db23508e2bc637 [gaim-migrate @ 16141] Correctly remove the disconnected button when the account successfully connections. This might have only been a problem when the account wanted_to_die committer: Tailor Script diff -r 74033e0831bc -r 2eea3265dbe6 src/gtkblist.c --- a/src/gtkblist.c Sun May 07 17:40:42 2006 +0000 +++ b/src/gtkblist.c Sun May 07 18:04:24 2006 +0000 @@ -3527,28 +3527,21 @@ GaimAccount *account; char *primary; const char *text; + gboolean enabled; account = user_data; primary = g_strdup_printf(_("%s disconnected"), gaim_account_get_username(account)); text = g_hash_table_lookup(gtkblist->connection_errors, account); - if (gaim_account_is_connected(account)) - { - gaim_notify_formatted(NULL, _("Connection Error"), - primary, NULL, text, NULL, NULL); - } - else - { - gboolean enabled = gaim_account_get_enabled(account, gaim_core_get_ui()); - gaim_request_action(account, _("Connection Error"), primary, text, 2, - account, 3, - _("OK"), NULL, - _("Modify Account"), GAIM_CALLBACK(ce_modify_account_cb), - enabled ? _("Connect") : _("Re-enable Account"), - enabled ? GAIM_CALLBACK(gaim_account_connect) : - GAIM_CALLBACK(ce_enable_account_cb)); - } + enabled = gaim_account_get_enabled(account, gaim_core_get_ui()); + gaim_request_action(account, _("Connection Error"), primary, text, 2, + account, 3, + _("OK"), NULL, + _("Modify Account"), GAIM_CALLBACK(ce_modify_account_cb), + enabled ? _("Connect") : _("Re-enable Account"), + enabled ? GAIM_CALLBACK(gaim_account_connect) : + GAIM_CALLBACK(ce_enable_account_cb)); g_free(primary); gtk_widget_destroy(GTK_WIDGET(widget)); g_hash_table_remove(gtkblist->connection_errors, account); diff -r 74033e0831bc -r 2eea3265dbe6 src/gtkconn.c --- a/src/gtkconn.c Sun May 07 17:40:42 2006 +0000 +++ b/src/gtkconn.c Sun May 07 18:04:24 2006 +0000 @@ -51,7 +51,6 @@ * value is a pointer to a GaimAutoRecon. */ static GHashTable *hash = NULL; -static GHashTable *errored_accounts = NULL; static void gaim_gtk_connection_connect_progress(GaimConnection *gc, @@ -64,7 +63,7 @@ (gaim_connections_get_connecting() != NULL)); gtk_gaim_status_box_pulse_connecting(GTK_GAIM_STATUS_BOX(gtkblist->statusbox)); } - +\ static void gaim_gtk_connection_connected(GaimConnection *gc) { @@ -81,11 +80,7 @@ if (hash != NULL) g_hash_table_remove(hash, account); - if (g_hash_table_size(errored_accounts) > 0) - { - g_hash_table_remove(errored_accounts, account); - gaim_gtk_blist_update_account_error_state(account, NULL); - } + gaim_gtk_blist_update_account_error_state(account, NULL); } static void @@ -151,11 +146,9 @@ { GaimAccount *account = NULL; GaimAutoRecon *info; - GSList* errored_account; account = gaim_connection_get_account(gc); info = g_hash_table_lookup(hash, account); - errored_account = g_hash_table_lookup(errored_accounts, account); gaim_gtk_blist_update_account_error_state(account, text); if (!gc->wants_to_die) { @@ -169,16 +162,11 @@ g_source_remove(info->timeout); } info->timeout = g_timeout_add(info->delay, do_signon, account); - - g_hash_table_insert(errored_accounts, account, NULL); } else { char *p, *s, *n=NULL ; if (info != NULL) g_hash_table_remove(hash, account); - if (errored_account != NULL) - g_hash_table_remove(errored_accounts, errored_account); - if (gaim_account_get_alias(account)) { n = g_strdup_printf("%s (%s) (%s)", @@ -231,11 +219,7 @@ { g_hash_table_remove(hash, account); - if (g_hash_table_size(errored_accounts) > 0) - { - g_hash_table_remove(errored_accounts, account); - gaim_gtk_blist_update_account_error_state(account, NULL); - } + gaim_gtk_blist_update_account_error_state(account, NULL); } @@ -257,9 +241,6 @@ hash = g_hash_table_new_full( g_direct_hash, g_direct_equal, NULL, free_auto_recon); - errored_accounts = g_hash_table_new_full( - g_direct_hash, g_direct_equal, - NULL, NULL); gaim_signal_connect(gaim_accounts_get_handle(), "account-removed", gaim_gtk_connection_get_handle(), @@ -272,5 +253,4 @@ gaim_signals_disconnect_by_handle(gaim_gtk_connection_get_handle()); g_hash_table_destroy(hash); - g_hash_table_destroy(errored_accounts); }