- case PSPPIRE_DATA_EDITOR_DATA_VIEW:
- data_sheet = psppire_data_editor_get_active_data_sheet (de);
- psppire_data_sheet_goto_variable (data_sheet, dict_index);
- break;
-
- case PSPPIRE_DATA_EDITOR_VARIABLE_VIEW:
- psppire_var_sheet_goto_variable (PSPPIRE_VAR_SHEET (de->var_sheet),
- dict_index);
- break;
- }
-}
-
-/* Returns the "active" data sheet in DE. If DE is in single-paned mode, this
- is the only data sheet. If DE is in split mode (showing four data sheets),
- this is the focused data sheet or, if none is focused, the data sheet with
- selected cells or, if none has selected cells, the upper-left data sheet. */
-PsppireDataSheet *
-psppire_data_editor_get_active_data_sheet (PsppireDataEditor *de)
-{
- if (de->split)
- {
- PsppireDataSheet *data_sheet;
- GtkWidget *scroller;
- int i;
-
- /* If one of the datasheet's scrollers is focused, choose that one. */
- scroller = gtk_container_get_focus_child (
- GTK_CONTAINER (de->datasheet_vbox_widget));
- if (scroller != NULL)
- return PSPPIRE_DATA_SHEET (gtk_bin_get_child (GTK_BIN (scroller)));
-
- /* Otherwise if there's a nonempty selection in some data sheet, choose
- that one. */
- FOR_EACH_DATA_SHEET (data_sheet, i, de)
- {
- PsppSheetSelection *selection;
-
- selection = pspp_sheet_view_get_selection (
- PSPP_SHEET_VIEW (data_sheet));
- if (pspp_sheet_selection_count_selected_rows (selection)
- && pspp_sheet_selection_count_selected_columns (selection))
- return data_sheet;
- }
+ case PSPPIRE_DATA_EDITOR_DATA_VIEW:
+ ssw_sheet_scroll_to (SSW_SHEET (de->data_sheet), dict_index, -1);
+ ssw_sheet_set_active_cell (SSW_SHEET (de->data_sheet), dict_index, -1, NULL);
+ break;
+ case PSPPIRE_DATA_EDITOR_VARIABLE_VIEW:
+ ssw_sheet_scroll_to (SSW_SHEET (de->var_sheet), -1, dict_index);
+ ssw_sheet_set_active_cell (SSW_SHEET (de->var_sheet), -1, dict_index, NULL);
+ break;