X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fgtk-contrib%2Fpsppire-sheet.c;h=908081e1a0abaafe0e2627e6ff8a6a9ded3e6fa2;hb=accdc420c2900ef68f2cd77c1a469750b551d5b8;hp=31ecbcbf5b17dfb30e9ff9590632d0d4157fa6de;hpb=9e8cf8a1587fa439394b7b2bb6f707bb26c6955e;p=pspp-builds.git diff --git a/lib/gtk-contrib/psppire-sheet.c b/lib/gtk-contrib/psppire-sheet.c index 31ecbcbf..908081e1 100644 --- a/lib/gtk-contrib/psppire-sheet.c +++ b/lib/gtk-contrib/psppire-sheet.c @@ -4204,12 +4204,29 @@ step_sheet (PsppireSheet *sheet, GtkScrollType dir) case GTK_SCROLL_STEP_LEFT: new_cell.col--; break; + case GTK_SCROLL_STEP_FORWARD: + new_cell.col++; + if (new_cell.col >= + psppire_sheet_model_get_column_count (sheet->model)) + { + new_cell.col = 0; + new_cell.row++; + } + break; + case GTK_SCROLL_STEP_BACKWARD: + new_cell.col--; + if (new_cell.col < 0) + { + new_cell.col = + psppire_sheet_model_get_column_count (sheet->model) - 1; + new_cell.row--; + } + break; default: g_assert_not_reached (); break; } - g_signal_emit (sheet, sheet_signals[TRAVERSE], 0, &sheet->active_cell, &new_cell, @@ -4287,10 +4304,14 @@ psppire_sheet_key_press (GtkWidget *widget, switch (key->keyval) { case GDK_Tab: + step_sheet (sheet, GTK_SCROLL_STEP_FORWARD); + break; case GDK_Right: step_sheet (sheet, GTK_SCROLL_STEP_RIGHT); break; case GDK_ISO_Left_Tab: + step_sheet (sheet, GTK_SCROLL_STEP_BACKWARD); + break; case GDK_Left: step_sheet (sheet, GTK_SCROLL_STEP_LEFT); break;