This change alters the behaviour of the tab key
in the variable and data sheet. When using the
tab key, if the last cell in a row is encountered,
it will now cause the active cell to move to the
first cell in the next row. Fixes bug #25168
case GTK_SCROLL_STEP_LEFT:
new_cell.col--;
break;
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;
}
default:
g_assert_not_reached ();
break;
}
g_signal_emit (sheet, sheet_signals[TRAVERSE], 0,
&sheet->active_cell,
&new_cell,
g_signal_emit (sheet, sheet_signals[TRAVERSE], 0,
&sheet->active_cell,
&new_cell,
switch (key->keyval)
{
case GDK_Tab:
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:
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;
case GDK_Left:
step_sheet (sheet, GTK_SCROLL_STEP_LEFT);
break;