aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/e-tasks.c
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/gui/e-tasks.c')
-rw-r--r--calendar/gui/e-tasks.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/calendar/gui/e-tasks.c b/calendar/gui/e-tasks.c
index caba394248..bd4162c617 100644
--- a/calendar/gui/e-tasks.c
+++ b/calendar/gui/e-tasks.c
@@ -763,10 +763,7 @@ backend_died_cb (ECal *client, gpointer data)
priv = tasks->priv;
/* FIXME: this doesn't remove the task list from the list or anything */
- message = g_strdup_printf (_("The task backend for\n%s\n has crashed. "
- "You will have to restart Evolution in order "
- "to use it again"),
- e_cal_get_uri (client));
+ message = g_strdup_printf (_("The task backend for\n%s\n has crashed."), e_cal_get_uri (client));
e_calendar_table_set_status_message (E_CALENDAR_TABLE (e_tasks_get_calendar_table (tasks)), NULL);
dialog = gtk_message_dialog_new (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (tasks))),
@@ -775,6 +772,14 @@ backend_died_cb (ECal *client, gpointer data)
gtk_dialog_run (GTK_DIALOG (dialog));
gtk_widget_destroy (dialog);
g_free (message);
+
+ e_source_selector_unselect_source (
+ tasks_component_peek_source_selector (tasks_component_peek ()),
+ e_cal_get_source (client));
+
+ g_hash_table_remove (priv->clients, e_cal_get_uri (client));
+ priv->clients_list = g_list_remove (priv->clients_list, client);
+ g_object_unref (client);
}
void