summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gui/fpg_tab.pas36
1 files changed, 17 insertions, 19 deletions
diff --git a/src/gui/fpg_tab.pas b/src/gui/fpg_tab.pas
index f15b59fa..5f0e7fbf 100644
--- a/src/gui/fpg_tab.pas
+++ b/src/gui/fpg_tab.pas
@@ -1243,26 +1243,24 @@ var
i: integer;
begin
i := ActivePageIndex;
- if ssAlt in shiftstate then
- case keycode of
- keyLeft:
- begin
- if ActivePage <> TfpgTabSheet(FPages.First) then
- begin
- ActivePage := TfpgTabSheet(FPages[i-1]);
- consumed := True;
- end;
- end;
- keyRight:
- begin
- if ActivePage <> TfpgTabSheet(FPages.Last) then
- begin
- ActivePage := TfpgTabSheet(FPages[i+1]);
- consumed := True;
- end;
- end;
- end; { case/else }
+ if (shiftstate = [ssCtrl]) and (keycode = keyTab) then
+ begin
+ consumed := True;
+ if ActivePage <> TfpgTabSheet(FPages.Last) then
+ ActivePage := TfpgTabSheet(FPages[i+1])
+ else
+ ActivePage := TfpgTabSheet(FPages.First); // loop back to the front
+ end
+ else if (shiftstate = [ssCtrl, ssShift]) and (keycode = keyTab) then
+ begin
+ consumed := True;
+ if ActivePage <> TfpgTabSheet(FPages.First) then
+ ActivePage := TfpgTabSheet(FPages[i-1])
+ else
+ ActivePage := TfpgTabSheet(FPages.Last); // loop back to the end
+ end;
+
if not consumed then
inherited HandleKeyPress(keycode, shiftstate, consumed);
end;