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.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/calendar/gui/e-tasks.c b/calendar/gui/e-tasks.c
index 5a0b4b56c3..ea3e9dd12e 100644
--- a/calendar/gui/e-tasks.c
+++ b/calendar/gui/e-tasks.c
@@ -486,6 +486,37 @@ model_row_changed_cb (ETableModel *etm, int row, gpointer data)
}
static void
+model_rows_deleted_cb (ETableModel *etm, int row, int count, gpointer data)
+{
+ ETasks *tasks;
+ ETasksPrivate *priv;
+ ECalModelComponent *comp_data;
+
+ tasks = E_TASKS (data);
+ priv = tasks->priv;
+
+ if (priv->current_uid) {
+ const char *uid;
+ int i;
+
+ for (i = row; i < row + count; i++) {
+ comp_data = e_cal_model_get_component_at (E_CAL_MODEL (etm), i);
+ if (comp_data) {
+ uid = icalcomponent_get_uid (comp_data->icalcomp);
+ if (!strcmp (uid ? uid : "", priv->current_uid)) {
+ ETable *etable;
+
+ etable = e_table_scrolled_get_table (
+ E_TABLE_SCROLLED (E_CALENDAR_TABLE (priv->tasks_view)->etable));
+ table_cursor_change_cb (etable, 0, tasks);
+ break;
+ }
+ }
+ }
+ }
+}
+
+static void
setup_config (ETasks *tasks)
{
ETasksPrivate *priv;
@@ -577,6 +608,8 @@ setup_widgets (ETasks *tasks)
model = e_calendar_table_get_model (E_CALENDAR_TABLE (priv->tasks_view));
g_signal_connect (G_OBJECT (model), "model_row_changed",
G_CALLBACK (model_row_changed_cb), tasks);
+ g_signal_connect (G_OBJECT (model), "model_rows_deleted",
+ G_CALLBACK (model_rows_deleted_cb), tasks);
}
/* Class initialization function for the gnome calendar */