aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table/e-table-without.c
diff options
context:
space:
mode:
authorChristopher James Lahey <clahey@ximian.com>2001-10-31 18:33:51 +0800
committerChris Lahey <clahey@src.gnome.org>2001-10-31 18:33:51 +0800
commit23587bebe83c772d08ab2ae7faa31dffa45b0987 (patch)
tree610958e3503f902d708b7facdbc381315b62f317 /widgets/table/e-table-without.c
parenta06c0a0d1265e81e0672c859742474c623f3d2d8 (diff)
downloadgsoc2013-evolution-23587bebe83c772d08ab2ae7faa31dffa45b0987.tar
gsoc2013-evolution-23587bebe83c772d08ab2ae7faa31dffa45b0987.tar.gz
gsoc2013-evolution-23587bebe83c772d08ab2ae7faa31dffa45b0987.tar.bz2
gsoc2013-evolution-23587bebe83c772d08ab2ae7faa31dffa45b0987.tar.lz
gsoc2013-evolution-23587bebe83c772d08ab2ae7faa31dffa45b0987.tar.xz
gsoc2013-evolution-23587bebe83c772d08ab2ae7faa31dffa45b0987.tar.zst
gsoc2013-evolution-23587bebe83c772d08ab2ae7faa31dffa45b0987.zip
Added frozen_count variable to know not to show the cursor while a change
2001-10-31 Christopher James Lahey <clahey@ximian.com> * e-table-item.c, e-table-item.h: Added frozen_count variable to know not to show the cursor while a change is going on. * e-table-model.c, e-table-model.h, e-tree-model.c, e-tree-model.h: Added a model_no_change signal to pair with a pre_change if there's no change. * e-table-selection-model.h: Removed an unused frozen field here. * e-table-sorted.c, e-table-subset.c, e-table-subset.h, e-table-without.c, e-tree-memory.c, e-tree-sorted.c, e-tree-table-adapter.c: Made sure pre_changes were all matched by some change. Proxy no_change signal where appropriate. * e-tree-selection-model.c: Keep track of the frozen_count variable to know whether a change is going on. svn path=/trunk/; revision=14523
Diffstat (limited to 'widgets/table/e-table-without.c')
-rw-r--r--widgets/table/e-table-without.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/widgets/table/e-table-without.c b/widgets/table/e-table-without.c
index 7a1989980a..f6d4fe3b86 100644
--- a/widgets/table/e-table-without.c
+++ b/widgets/table/e-table-without.c
@@ -153,11 +153,15 @@ etw_proxy_model_rows_inserted (ETableSubset *etss, ETableModel *etm, int model_r
{
int i;
ETableWithout *etw = E_TABLE_WITHOUT (etss);
+ gboolean shift = FALSE;
/* i is View row */
- for (i = 0; i < etss->n_map; i++) {
- if (etss->map_table[i] > model_row)
- etss->map_table[i] += count;
+ if (model_row != etss->n_map) {
+ for (i = 0; i < etss->n_map; i++) {
+ if (etss->map_table[i] > model_row)
+ etss->map_table[i] += count;
+ }
+ shift = TRUE;
}
/* i is Model row */
@@ -166,6 +170,10 @@ etw_proxy_model_rows_inserted (ETableSubset *etss, ETableModel *etm, int model_r
add_row (etw, i);
}
}
+ if (shift)
+ e_table_model_changed (E_TABLE_MODEL (etw));
+ else
+ e_table_model_no_change (E_TABLE_MODEL (etw));
}
static void
@@ -173,14 +181,21 @@ etw_proxy_model_rows_deleted (ETableSubset *etss, ETableModel *etm, int model_ro
{
int i; /* View row */
ETableWithout *etw = E_TABLE_WITHOUT (etss);
+ gboolean shift = FALSE;
for (i = 0; i < etss->n_map; i++) {
if (etss->map_table[i] >= model_row && etss->map_table[i] < model_row + count) {
remove_row (etw, i);
i--;
- } else if (etss->map_table[i] >= model_row + count)
+ } else if (etss->map_table[i] >= model_row + count) {
etss->map_table[i] -= count;
+ shift = TRUE;
+ }
}
+ if (shift)
+ e_table_model_changed (E_TABLE_MODEL (etw));
+ else
+ e_table_model_no_change (E_TABLE_MODEL (etw));
}
static void