capslock fixes

This commit is contained in:
April Ayres-Griffiths 2019-04-18 12:52:19 +10:00
parent 566cec6cc3
commit 21abee59bf
7 changed files with 274 additions and 231 deletions

View File

@ -1894,7 +1894,11 @@ end;
procedure TGUIForm.tbCapsModeClick(Sender: TObject); procedure TGUIForm.tbCapsModeClick(Sender: TObject);
begin begin
miINPAllCapsClick(sender); if GetConfig('input/init.uppercase') = '0' then
UpdateConfig( 'input/init.uppercase', '1', false )
else
UpdateConfig( 'input/init.uppercase', '0', false );
UpdateAllCaps; UpdateAllCaps;
end; end;
@ -2897,29 +2901,46 @@ begin
exit; exit;
end; end;
{$IFDEF WINDOWS}
Caps := Odd(GetKeyState(VK_CAPITAL));
{$ENDIF}
if isCaps then
keydesc := 'caps';
case Key of case Key of
VK_BACK:
if isCtrl and isShift then
Result := 0;
VK_RETURN: begin VK_RETURN: begin
if not isAlt then if not isAlt then
Result := 13 Result := 13
else else
Result := 0; Result := 0;
end; end;
VK_SHIFT: Result := 0; //VK_SHIFT: Result := 0;
VK_CAPITAL: begin VK_CAPITAL: begin
if KeyUp then {$IFDEF DARWIN}
begin Caps := (not KeyUp);
Caps := (not Caps); if Caps then
if Caps then keydesc := 'Caps On'
keydesc := 'Caps On' else
else keydesc := 'Caps Off';
keydesc := 'Caps Off'; Result := 0;
Result := 0; {$ELSE}
exit; {$IFDEF WINDOWS}
end;
end; {$ELSE}
if KeyUp then
begin
Caps := (not Caps);
if Caps then
keydesc := 'Caps On'
else
keydesc := 'Caps Off';
Result := 0;
exit;
end;
{$ENDIF}
{$ENDIF}
end;
VK_MENU: if (not isAlt and not isShift) then VK_MENU: if (not isAlt and not isShift) then
Result := OPEN_APPLE Result := OPEN_APPLE
else if (isShift) then else if (isShift) then
@ -3079,9 +3100,9 @@ procedure TGUIForm.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState)
var var
code: integer; code: integer;
begin begin
//code := MapKeyCode(Key,Shift,true); code := MapKeyCode(Key,Shift,true);
//if code <> 0 then if code <> 0 then
// SendKey( code, 0, 0, MapShiftState(Key, Shift) ); SendKey( code, 0, 0, MapShiftState(Key, Shift) );
//StatusBar1.SimpleText := 'keycode ' + IntToStr(Key); //StatusBar1.SimpleText := 'keycode ' + IntToStr(Key);
end; end;

View File

@ -21,8 +21,8 @@
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/> <IsVisibleTab Value="True"/>
<TopLine Value="2868"/> <TopLine Value="694"/>
<CursorPos X="10" Y="2886"/> <CursorPos X="16" Y="699"/>
<UsageCount Value="323"/> <UsageCount Value="323"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1894,7 +1894,11 @@ end;
procedure TGUIForm.tbCapsModeClick(Sender: TObject); procedure TGUIForm.tbCapsModeClick(Sender: TObject);
begin begin
miINPAllCapsClick(sender); if GetConfig('input/init.uppercase') = '0' then
UpdateConfig( 'input/init.uppercase', '1', false )
else
UpdateConfig( 'input/init.uppercase', '0', false );
UpdateAllCaps; UpdateAllCaps;
end; end;
@ -2897,6 +2901,13 @@ begin
exit; exit;
end; end;
{$IFDEF WINDOWS}
Caps := Odd(GetKeyState(VK_CAPITAL));
{$ENDIF}
if isCaps then
keydesc := 'caps';
case Key of case Key of
VK_RETURN: begin VK_RETURN: begin
if not isAlt then if not isAlt then
@ -2904,19 +2915,30 @@ begin
else else
Result := 0; Result := 0;
end; end;
VK_SHIFT: Result := 0; //VK_SHIFT: Result := 0;
VK_CAPITAL: begin VK_CAPITAL: begin
if KeyUp then {$IFDEF DARWIN}
begin Caps := (not KeyUp);
Caps := (not Caps); if Caps then
if Caps then keydesc := 'Caps On'
keydesc := 'Caps On' else
else keydesc := 'Caps Off';
keydesc := 'Caps Off'; Result := 0;
Result := 0; {$ELSE}
exit; {$IFDEF LINUX}
end; if KeyUp then
end; begin
Caps := (not Caps);
if Caps then
keydesc := 'Caps On'
else
keydesc := 'Caps Off';
Result := 0;
exit;
end;
{$ENDIF}
{$ENDIF}
end;
VK_MENU: if (not isAlt and not isShift) then VK_MENU: if (not isAlt and not isShift) then
Result := OPEN_APPLE Result := OPEN_APPLE
else if (isShift) then else if (isShift) then
@ -3076,9 +3098,9 @@ procedure TGUIForm.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState)
var var
code: integer; code: integer;
begin begin
//code := MapKeyCode(Key,Shift,true); code := MapKeyCode(Key,Shift,true);
//if code <> 0 then if code <> 0 then
// SendKey( code, 0, 0, MapShiftState(Key, Shift) ); SendKey( code, 0, 0, MapShiftState(Key, Shift) );
//StatusBar1.SimpleText := 'keycode ' + IntToStr(Key); //StatusBar1.SimpleText := 'keycode ' + IntToStr(Key);
end; end;

388
poc.lps
View File

@ -1,194 +1,194 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<CONFIG> <CONFIG>
<ProjectSession> <ProjectSession>
<PathDelim Value="\"/> <PathDelim Value="\"/>
<Version Value="11"/> <Version Value="11"/>
<BuildModes Active="Default"/> <BuildModes Active="Default"/>
<Units Count="6"> <Units Count="6">
<Unit0> <Unit0>
<Filename Value="poc.lpr"/> <Filename Value="poc.lpr"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<WindowIndex Value="-1"/> <WindowIndex Value="-1"/>
<TopLine Value="-1"/> <TopLine Value="-1"/>
<CursorPos X="-1" Y="-1"/> <CursorPos X="-1" Y="-1"/>
<UsageCount Value="323"/> <UsageCount Value="323"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="GUIForm"/> <ComponentName Value="GUIForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/> <IsVisibleTab Value="True"/>
<TopLine Value="694"/> <TopLine Value="3070"/>
<CursorPos X="16" Y="699"/> <CursorPos X="54" Y="3090"/>
<UsageCount Value="323"/> <UsageCount Value="323"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>
</Unit1> </Unit1>
<Unit2> <Unit2>
<Filename Value="mixer.pas"/> <Filename Value="mixer.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="frmMixer"/> <ComponentName Value="frmMixer"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<TopLine Value="3"/> <TopLine Value="3"/>
<CursorPos X="26" Y="25"/> <CursorPos X="26" Y="25"/>
<UsageCount Value="206"/> <UsageCount Value="206"/>
</Unit2> </Unit2>
<Unit3> <Unit3>
<Filename Value="C:\lazarus\lcl\include\picture.inc"/> <Filename Value="C:\lazarus\lcl\include\picture.inc"/>
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<TopLine Value="576"/> <TopLine Value="576"/>
<CursorPos X="49" Y="591"/> <CursorPos X="49" Y="591"/>
<UsageCount Value="100"/> <UsageCount Value="100"/>
</Unit3> </Unit3>
<Unit4> <Unit4>
<Filename Value="C:\lazarus\components\lazutils\utf8process.pp"/> <Filename Value="C:\lazarus\components\lazutils\utf8process.pp"/>
<UnitName Value="UTF8Process"/> <UnitName Value="UTF8Process"/>
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<TopLine Value="636"/> <TopLine Value="636"/>
<CursorPos Y="654"/> <CursorPos Y="654"/>
<UsageCount Value="5"/> <UsageCount Value="5"/>
</Unit4> </Unit4>
<Unit5> <Unit5>
<Filename Value="images\memory.pas"/> <Filename Value="images\memory.pas"/>
<ComponentName Value="memform"/> <ComponentName Value="memform"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<TopLine Value="40"/> <TopLine Value="40"/>
<CursorPos X="17" Y="44"/> <CursorPos X="17" Y="44"/>
<UsageCount Value="14"/> <UsageCount Value="14"/>
</Unit5> </Unit5>
</Units> </Units>
<JumpHistory Count="30" HistoryIndex="29"> <JumpHistory Count="30" HistoryIndex="29">
<Position1> <Position1>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="822" Column="15" TopLine="810"/> <Caret Line="3151" Column="3" TopLine="3134"/>
</Position1> </Position1>
<Position2> <Position2>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="2816" Column="17" TopLine="2765"/> <Caret Line="999" Column="10" TopLine="997"/>
</Position2> </Position2>
<Position3> <Position3>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="2969" Column="14" TopLine="2949"/> <Caret Line="1110" Column="45" TopLine="1103"/>
</Position3> </Position3>
<Position4> <Position4>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="2978" Column="4" TopLine="2959"/> <Caret Line="1109" Column="20" TopLine="1098"/>
</Position4> </Position4>
<Position5> <Position5>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="2814" Column="31" TopLine="2799"/> <Caret Line="396" Column="15" TopLine="385"/>
</Position5> </Position5>
<Position6> <Position6>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="2788" Column="19" TopLine="2762"/> <Caret Line="1109" Column="20" TopLine="1104"/>
</Position6> </Position6>
<Position7> <Position7>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="2855" Column="25" TopLine="2799"/> <Caret Line="396" Column="29" TopLine="385"/>
</Position7> </Position7>
<Position8> <Position8>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="740" Column="6" TopLine="745"/> <Caret Line="978" Column="38" TopLine="961"/>
</Position8> </Position8>
<Position9> <Position9>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="3151" Column="3" TopLine="3134"/> <Caret Line="2868" Column="26" TopLine="2848"/>
</Position9> </Position9>
<Position10> <Position10>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="998" Column="10" TopLine="978"/> <Caret Line="593" Column="38" TopLine="572"/>
</Position10> </Position10>
<Position11> <Position11>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="3151" Column="3" TopLine="3134"/> <Caret Line="2987" Column="48" TopLine="2978"/>
</Position11> </Position11>
<Position12> <Position12>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="999" Column="10" TopLine="997"/> <Caret Line="582" Column="20" TopLine="572"/>
</Position12> </Position12>
<Position13> <Position13>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="1110" Column="45" TopLine="1103"/> <Caret Line="2809" Column="66" TopLine="2788"/>
</Position13> </Position13>
<Position14> <Position14>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="1109" Column="20" TopLine="1098"/> <Caret Line="2998" Column="6" TopLine="2978"/>
</Position14> </Position14>
<Position15> <Position15>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="396" Column="15" TopLine="385"/> <Caret Line="3039" Column="26" TopLine="3026"/>
</Position15> </Position15>
<Position16> <Position16>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="1109" Column="20" TopLine="1104"/> <Caret Line="3035" Column="34" TopLine="3024"/>
</Position16> </Position16>
<Position17> <Position17>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="396" Column="29" TopLine="385"/> <Caret Line="335" Column="59" TopLine="318"/>
</Position17> </Position17>
<Position18> <Position18>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="978" Column="38" TopLine="961"/> <Caret Line="3046" Column="36" TopLine="3032"/>
</Position18> </Position18>
<Position19> <Position19>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="2868" Column="26" TopLine="2848"/> <Caret Line="2882" Column="27" TopLine="2867"/>
</Position19> </Position19>
<Position20> <Position20>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="593" Column="38" TopLine="572"/> <Caret Line="2888" Column="23" TopLine="2877"/>
</Position20> </Position20>
<Position21> <Position21>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="2987" Column="48" TopLine="2978"/> <Caret Line="706" Column="34" TopLine="732"/>
</Position21> </Position21>
<Position22> <Position22>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="582" Column="20" TopLine="572"/> <Caret Line="2752" Column="28" TopLine="2729"/>
</Position22> </Position22>
<Position23> <Position23>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="2809" Column="66" TopLine="2788"/> <Caret Line="1788" Column="61" TopLine="1785"/>
</Position23> </Position23>
<Position24> <Position24>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="2998" Column="6" TopLine="2978"/> <Caret Line="2341" Column="6" TopLine="2313"/>
</Position24> </Position24>
<Position25> <Position25>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="3039" Column="26" TopLine="3026"/> <Caret Line="1801" Column="28" TopLine="1786"/>
</Position25> </Position25>
<Position26> <Position26>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="3035" Column="34" TopLine="3024"/> <Caret Line="2900" Column="14" TopLine="2888"/>
</Position26> </Position26>
<Position27> <Position27>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="335" Column="59" TopLine="318"/> <Caret Line="1897" Column="16" TopLine="1894"/>
</Position27> </Position27>
<Position28> <Position28>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="3046" Column="36" TopLine="3032"/> <Caret Line="426" Column="15" TopLine="408"/>
</Position28> </Position28>
<Position29> <Position29>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="2882" Column="27" TopLine="2867"/> <Caret Line="1183" TopLine="1178"/>
</Position29> </Position29>
<Position30> <Position30>
<Filename Value="main.pas"/> <Filename Value="main.pas"/>
<Caret Line="2888" Column="23" TopLine="2877"/> <Caret Line="1923" Column="42" TopLine="1895"/>
</Position30> </Position30>
</JumpHistory> </JumpHistory>
<RunParams> <RunParams>
<FormatVersion Value="2"/> <FormatVersion Value="2"/>
<Modes Count="0" ActiveMode=""/> <Modes Count="0" ActiveMode=""/>
</RunParams> </RunParams>
</ProjectSession> </ProjectSession>
</CONFIG> </CONFIG>