X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-data-editor.c;h=916c8838a05a3fff8b8221b623c291e4c631b420;hb=389b447a91e26f255e79c4fd8520d99931809ed0;hp=4ad9ab622646adfed8663dd8449ec57cceab16cb;hpb=f82952d22e200e1b35cea23545857a2cf2f02c66;p=pspp-builds.git diff --git a/src/ui/gui/psppire-data-editor.c b/src/ui/gui/psppire-data-editor.c index 4ad9ab62..916c8838 100644 --- a/src/ui/gui/psppire-data-editor.c +++ b/src/ui/gui/psppire-data-editor.c @@ -562,6 +562,19 @@ on_map (GtkWidget *w) g_signal_connect (clip, "owner-change", G_CALLBACK (on_owner_change), w); } +static gboolean +traverse_cell_callback (GtkSheet *sheet, + gint row, gint column, + gint *new_row, gint *new_column, + gpointer data) +{ + PsppireDataStore *data_store = PSPPIRE_DATA_STORE (data); + + if ( *new_column >= psppire_dict_get_var_cnt (data_store->dict)) + return FALSE; + + return TRUE; +} static void psppire_data_editor_init (PsppireDataEditor *de) @@ -670,6 +683,9 @@ psppire_data_editor_new (PsppireVarStore *var_store, "data-store", data_store, NULL); + g_signal_connect (PSPPIRE_DATA_EDITOR(widget)->data_sheet, "traverse", + G_CALLBACK (traverse_cell_callback), data_store); + return widget; } @@ -1023,7 +1039,7 @@ data_is_selected (PsppireDataEditor *de) GtkSheetRange range; gint row, col; - if ( gtk_notebook_current_page (GTK_NOTEBOOK (de)) != PSPPIRE_DATA_EDITOR_DATA_VIEW) + if ( gtk_notebook_get_current_page (GTK_NOTEBOOK (de)) != PSPPIRE_DATA_EDITOR_DATA_VIEW) return FALSE; gtk_sheet_get_active_cell (GTK_SHEET (de->data_sheet), &row, &col);