diff -up evolution-3.12.11/e-util/gal-a11y-e-table-item.c.gala11yetableitem-row-count evolution-3.12.11/e-util/gal-a11y-e-table-item.c --- evolution-3.12.11/e-util/gal-a11y-e-table-item.c.gala11yetableitem-row-count 2016-06-20 15:26:34.288580802 +0200 +++ evolution-3.12.11/e-util/gal-a11y-e-table-item.c 2016-06-20 15:26:34.410580797 +0200 @@ -823,6 +823,25 @@ eti_rows_deleted (ETableModel *model, } static void +eti_model_changed (ETableModel *model, + AtkObject *table_item) +{ + GalA11yETableItemPrivate *priv; + gint row_count; + + g_return_if_fail (GAL_A11Y_IS_E_TABLE_ITEM (table_item)); + + priv = GET_PRIVATE (table_item); + + row_count = e_table_model_row_count (model); + + if (priv->rows != row_count) { + priv->rows = row_count; + g_signal_emit_by_name (table_item, "visible-data-changed"); + } +} + +static void eti_tree_model_node_changed_cb (ETreeModel *model, ETreePath node, ETableItem *eti) @@ -986,6 +1005,9 @@ eti_real_initialize (AtkObject *obj, model, "model-rows-deleted", G_CALLBACK (eti_rows_deleted), obj, 0); g_signal_connect_object ( + model, "model-changed", + G_CALLBACK (eti_model_changed), obj, 0); + g_signal_connect_object ( eti->header, "structure_change", G_CALLBACK (eti_header_structure_changed), obj, 0); }