diff options
author | Christopher James Lahey <clahey@ximian.com> | 2001-12-18 07:09:54 +0800 |
---|---|---|
committer | Chris Lahey <clahey@src.gnome.org> | 2001-12-18 07:09:54 +0800 |
commit | 98a2c856275ec6b1f9ce60449e7b124a1dd7e7f0 (patch) | |
tree | a597a0534ce192fe854b6eaaaeb634ca59bd7d32 | |
parent | d39ecffd6d964357c55bd6cebc2cc4bb9fd4f547 (diff) | |
download | gsoc2013-evolution-98a2c856275ec6b1f9ce60449e7b124a1dd7e7f0.tar.gz gsoc2013-evolution-98a2c856275ec6b1f9ce60449e7b124a1dd7e7f0.tar.zst gsoc2013-evolution-98a2c856275ec6b1f9ce60449e7b124a1dd7e7f0.zip |
Merging changes:
2001-12-17 Christopher James Lahey <clahey@ximian.com>
* gal/widgets/e-selection-model-simple.c
(e_selection_model_simple_set_row_count): Set esma->selected_row
and esma->selected_range_end to -1 here.
* gal/widgets/e-selection-model-array.c
(e_selection_model_array_confirm_row_count): Set selected_row and
selected_range_end to -1 here.
(esma_select_single_row): Check that selected_row is within the
range of possible rows. This should never happen, but this check
will help if it does.
svn path=/trunk/; revision=15142
-rw-r--r-- | widgets/misc/e-selection-model-array.c | 7 | ||||
-rw-r--r-- | widgets/misc/e-selection-model-simple.c | 2 |
2 files changed, 7 insertions, 2 deletions
diff --git a/widgets/misc/e-selection-model-array.c b/widgets/misc/e-selection-model-array.c index dd81fb2554..2ed1f0a6be 100644 --- a/widgets/misc/e-selection-model-array.c +++ b/widgets/misc/e-selection-model-array.c @@ -44,6 +44,8 @@ e_selection_model_array_confirm_row_count(ESelectionModelArray *esma) if (esma->eba == NULL) { int row_count = e_selection_model_array_get_row_count(esma); esma->eba = e_bit_array_new(row_count); + esma->selected_row = -1; + esma->selected_range_end = -1; } } @@ -384,10 +386,11 @@ esma_real_select_single_row (ESelectionModel *selection, int row) static void esma_select_single_row (ESelectionModel *selection, int row) { - int selected_row = E_SELECTION_MODEL_ARRAY(selection)->selected_row; + ESelectionModelArray *esma = E_SELECTION_MODEL_ARRAY(selection); + int selected_row = esma->selected_row; esma_real_select_single_row (selection, row); - if (selected_row != -1) { + if (selected_row != -1 && esma->eba && selected_row < e_bit_array_bit_count (esma->eba)) { if (selected_row != row) { e_selection_model_selection_row_changed(selection, selected_row); e_selection_model_selection_row_changed(selection, row); diff --git a/widgets/misc/e-selection-model-simple.c b/widgets/misc/e-selection-model-simple.c index b35ac7d497..0d87cdc779 100644 --- a/widgets/misc/e-selection-model-simple.c +++ b/widgets/misc/e-selection-model-simple.c @@ -77,6 +77,8 @@ e_selection_model_simple_set_row_count (ESelectionModelSimple *esms, if (esma->eba) gtk_object_unref(GTK_OBJECT(esma->eba)); esma->eba = NULL; + esma->selected_row = -1; + esma->selected_range_end = -1; } esms->row_count = row_count; } |