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
This commit is contained in:
committed by
Chris Lahey
parent
d39ecffd6d
commit
98a2c85627
@ -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);
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user