mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-16 20:39:13 +02:00
* ctrl-shift-arrow key definitions for xterm, xfce
git-svn-id: trunk@40611 -
This commit is contained in:
parent
c0e680e277
commit
645b924b0c
@ -96,6 +96,12 @@ const KbShiftUp = $f0;
|
|||||||
KbShiftDown = $f3;
|
KbShiftDown = $f3;
|
||||||
KbShiftHome = $f4;
|
KbShiftHome = $f4;
|
||||||
KbShiftEnd = $f5;
|
KbShiftEnd = $f5;
|
||||||
|
KbCtrlShiftUp = $f6;
|
||||||
|
KbCtrlShiftDown = $f7;
|
||||||
|
KbCtrlShiftRight = $f8;
|
||||||
|
KbCtrlShiftLeft = $f9;
|
||||||
|
KbCtrlShiftHome = $fa;
|
||||||
|
KbCtrlShiftEnd = $fb;
|
||||||
|
|
||||||
double_esc_hack_enabled : boolean = false;
|
double_esc_hack_enabled : boolean = false;
|
||||||
|
|
||||||
@ -494,7 +500,7 @@ const
|
|||||||
MouseEvent.buttons := 0;
|
MouseEvent.buttons := 0;
|
||||||
PutMouseEvent(MouseEvent);
|
PutMouseEvent(MouseEvent);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure GenMouseEvent;
|
procedure GenMouseEvent;
|
||||||
var MouseEvent: TMouseEvent;
|
var MouseEvent: TMouseEvent;
|
||||||
ch : char;
|
ch : char;
|
||||||
@ -869,7 +875,7 @@ type key_sequence=packed record
|
|||||||
st:string[7];
|
st:string[7];
|
||||||
end;
|
end;
|
||||||
|
|
||||||
const key_sequences:array[0..289] of key_sequence=(
|
const key_sequences:array[0..297] of key_sequence=(
|
||||||
(char:0;scan:kbAltA;st:#27'A'),
|
(char:0;scan:kbAltA;st:#27'A'),
|
||||||
(char:0;scan:kbAltA;st:#27'a'),
|
(char:0;scan:kbAltA;st:#27'a'),
|
||||||
(char:0;scan:kbAltB;st:#27'B'),
|
(char:0;scan:kbAltB;st:#27'B'),
|
||||||
@ -1136,6 +1142,15 @@ const key_sequences:array[0..289] of key_sequence=(
|
|||||||
(char:0;scan:kbShiftHome;st:#27'[1;2H'), {xterm}
|
(char:0;scan:kbShiftHome;st:#27'[1;2H'), {xterm}
|
||||||
(char:0;scan:kbShiftHome;st:#27'[7$'), {rxvt}
|
(char:0;scan:kbShiftHome;st:#27'[7$'), {rxvt}
|
||||||
|
|
||||||
|
(char:0;scan:KbCtrlShiftUp;st:#27'[1;6A'), {xterm}
|
||||||
|
(char:0;scan:KbCtrlShiftDown;st:#27'[1;6B'), {xterm}
|
||||||
|
(char:0;scan:KbCtrlShiftRight;st:#27'[1;6C'), {xterm, xfce4}
|
||||||
|
(char:0;scan:KbCtrlShiftLeft;st:#27'[1;6D'), {xterm, xfce4}
|
||||||
|
(char:0;scan:KbCtrlShiftHome;st:#27'[1;6H'), {xterm}
|
||||||
|
(char:0;scan:KbCtrlShiftEnd;st:#27'[1;6F'), {xterm}
|
||||||
|
|
||||||
|
(char:0;scan:kbCtrlPgDn;st:#27'[6;5~'), {xterm}
|
||||||
|
(char:0;scan:kbCtrlPgUp;st:#27'[5;5~'), {xterm}
|
||||||
(char:0;scan:kbCtrlUp;st:#27'[1;5A'), {xterm}
|
(char:0;scan:kbCtrlUp;st:#27'[1;5A'), {xterm}
|
||||||
(char:0;scan:kbCtrlDown;st:#27'[1;5B'), {xterm}
|
(char:0;scan:kbCtrlDown;st:#27'[1;5B'), {xterm}
|
||||||
(char:0;scan:kbCtrlRight;st:#27'[1;5C'), {xterm}
|
(char:0;scan:kbCtrlRight;st:#27'[1;5C'), {xterm}
|
||||||
@ -1304,7 +1319,7 @@ begin
|
|||||||
{This is the same hack as in findsequence; see findsequence for
|
{This is the same hack as in findsequence; see findsequence for
|
||||||
explanation.}
|
explanation.}
|
||||||
ch:=ttyrecvchar;
|
ch:=ttyrecvchar;
|
||||||
{Alt+O cannot be used in this situation, it can be a function key.}
|
{Alt+O cannot be used in this situation, it can be a function key.}
|
||||||
if not(ch in ['a'..'z','A'..'N','P'..'Z','0'..'9','-','+','_','=']) then
|
if not(ch in ['a'..'z','A'..'N','P'..'Z','0'..'9','-','+','_','=']) then
|
||||||
begin
|
begin
|
||||||
if intail=0 then
|
if intail=0 then
|
||||||
@ -1361,11 +1376,11 @@ begin
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
RestoreArray;
|
RestoreArray;
|
||||||
end
|
end;
|
||||||
{$ifdef logging}
|
{$ifdef logging}
|
||||||
writeln(f);
|
writeln(f);
|
||||||
{$endif logging}
|
{$endif logging}
|
||||||
;
|
|
||||||
ReadKey:=PopKey;
|
ReadKey:=PopKey;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
@ -1541,6 +1556,8 @@ const
|
|||||||
kbAltDown,kbAltPgDn,kbAltIns,kbAltDel);
|
kbAltDown,kbAltPgDn,kbAltIns,kbAltDel);
|
||||||
ShiftArrow : array [kbShiftUp..kbShiftEnd] of byte =
|
ShiftArrow : array [kbShiftUp..kbShiftEnd] of byte =
|
||||||
(kbUp,kbLeft,kbRight,kbDown,kbHome,kbEnd);
|
(kbUp,kbLeft,kbRight,kbDown,kbHome,kbEnd);
|
||||||
|
CtrlShiftArrow : array [kbCtrlShiftUp..kbCtrlShiftEnd] of byte =
|
||||||
|
(kbCtrlUp,kbCtrlDown,kbCtrlRight,kbCtrlLeft,kbCtrlHome,kbCtrlEnd);
|
||||||
|
|
||||||
var
|
var
|
||||||
MyScan:byte;
|
MyScan:byte;
|
||||||
@ -1601,10 +1618,17 @@ begin {main}
|
|||||||
kbF11..KbF12 : { sF11-sF12 }
|
kbF11..KbF12 : { sF11-sF12 }
|
||||||
MyScan:=MyScan+kbShiftF11-kbF11;
|
MyScan:=MyScan+kbShiftF11-kbF11;
|
||||||
end;
|
end;
|
||||||
if myscan in [kbShiftUp..kbShiftEnd] then
|
if myscan in [kbShiftUp..kbCtrlShiftEnd] then
|
||||||
begin
|
begin
|
||||||
myscan:=ShiftArrow[myscan];
|
if myscan <= kbShiftEnd then
|
||||||
sstate:=sstate or kbshift;
|
begin
|
||||||
|
myscan:=ShiftArrow[myscan];
|
||||||
|
sstate:=sstate or kbshift;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
myscan:=CtrlShiftArrow[myscan];
|
||||||
|
sstate:=sstate or kbshift or kbCtrl;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
if myscan=kbAltBack then
|
if myscan=kbAltBack then
|
||||||
sstate:=sstate or kbalt;
|
sstate:=sstate or kbalt;
|
||||||
|
Loading…
Reference in New Issue
Block a user