psppire_data_sheet_show_variable() only ensured that the variable in
question was visible in the data sheet. This commit makes it also put
the cursor on the variable's column. This affects the function's two
callers: the Find Dialog now selects a cell instead of an entire row,
and double-clicking a row number in the variable sheet now does likewise.
This solves a problem reported by John Darrington, who reported that
double-clicking on a row number in the variable sheet did not change
the selected cell but only switched to the data sheet.
column = psppire_data_sheet_find_column_for_variable (data_sheet,
dict_index);
if (column != NULL)
- pspp_sheet_view_scroll_to_cell (sheet_view, NULL, column,
- FALSE, 0.0, 0.0);
+ {
+ GtkTreePath *path;
+
+ gint row = psppire_data_sheet_get_current_case (data_sheet);
+ path = gtk_tree_path_new_from_indices (row >= 0 ? row : 0, -1);
+
+ pspp_sheet_view_scroll_to_cell (sheet_view, path, column,
+ FALSE, 0.0, 0.0);
+ pspp_sheet_view_set_cursor (sheet_view, path, column, FALSE);
+ gtk_tree_path_free (path);
+ }
}
struct variable *