mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 10:59:25 +02:00
Qt5,Qt6: map unicode chars to lcl keys where possible. issue #41452
(cherry picked from commit 17407a1e4d
)
Co-authored-by: zeljan1 <zeljko@holobit.hr>
This commit is contained in:
parent
e65b28a14a
commit
e434f37890
@ -3496,7 +3496,19 @@ begin
|
|||||||
// Translates a Qt4 Key to a LCL VK_* key
|
// Translates a Qt4 Key to a LCL VK_* key
|
||||||
if KeyMsg.CharCode = 0 then
|
if KeyMsg.CharCode = 0 then
|
||||||
begin
|
begin
|
||||||
ACharCode := QtKeyToLCLKey(QKeyEvent_key(QKeyEventH(Event)), Text, QKeyEventH(Event));
|
{$IFDEF HASX11}
|
||||||
|
//key is unicode char, nativeVirtualKey is XKey.
|
||||||
|
if (QKeyEvent_key(QKeyEventH(Event)) >= $100) and (QKeyEvent_key(QKeyEventH(Event)) < $017f) then
|
||||||
|
ACharCode := QtKeyToLCLKey((QKeyEvent_nativeVirtualKey(QKeyEventH(Event)) - $0100) or $0080, Text, QKeyEventH(Event))
|
||||||
|
else
|
||||||
|
if (QKeyEvent_key(QKeyEventH(Event)) >= $0180) and (QKeyEvent_key(QKeyEventH(Event)) <= $024F) then
|
||||||
|
ACharCode := QtKeyToLCLKey((QKeyEvent_nativeVirtualKey(QKeyEventH(Event)) - $0180) or $0080, Text, QKeyEventH(Event))
|
||||||
|
else
|
||||||
|
if (QKeyEvent_key(QKeyEventH(Event)) >= $0400) and (QKeyEvent_key(QKeyEventH(Event)) <= $04ff) then
|
||||||
|
ACharCode := QtKeyToLCLKey((QKeyEvent_key(QKeyEventH(Event)) - $0360), Text, QKeyEventH(Event))
|
||||||
|
else
|
||||||
|
{$ENDIF}
|
||||||
|
ACharCode := QtKeyToLCLKey(QKeyEvent_key(QKeyEventH(Event)), Text, QKeyEventH(Event));
|
||||||
KeyMsg.CharCode := ACharCode;
|
KeyMsg.CharCode := ACharCode;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -3494,7 +3494,19 @@ begin
|
|||||||
// Translates a Qt4 Key to a LCL VK_* key
|
// Translates a Qt4 Key to a LCL VK_* key
|
||||||
if KeyMsg.CharCode = 0 then
|
if KeyMsg.CharCode = 0 then
|
||||||
begin
|
begin
|
||||||
ACharCode := QtKeyToLCLKey(QKeyEvent_key(QKeyEventH(Event)), Text, QKeyEventH(Event));
|
{$IFDEF HASX11}
|
||||||
|
//key is unicode char, nativeVirtualKey is XKey.
|
||||||
|
if (QKeyEvent_key(QKeyEventH(Event)) >= $100) and (QKeyEvent_key(QKeyEventH(Event)) < $017f) then
|
||||||
|
ACharCode := QtKeyToLCLKey((QKeyEvent_nativeVirtualKey(QKeyEventH(Event)) - $0100) or $0080, Text, QKeyEventH(Event))
|
||||||
|
else
|
||||||
|
if (QKeyEvent_key(QKeyEventH(Event)) >= $0180) and (QKeyEvent_key(QKeyEventH(Event)) <= $024F) then
|
||||||
|
ACharCode := QtKeyToLCLKey((QKeyEvent_nativeVirtualKey(QKeyEventH(Event)) - $0180) or $0080, Text, QKeyEventH(Event))
|
||||||
|
else
|
||||||
|
if (QKeyEvent_key(QKeyEventH(Event)) >= $0400) and (QKeyEvent_key(QKeyEventH(Event)) <= $04ff) then
|
||||||
|
ACharCode := QtKeyToLCLKey((QKeyEvent_key(QKeyEventH(Event)) - $0360), Text, QKeyEventH(Event))
|
||||||
|
else
|
||||||
|
{$ENDIF}
|
||||||
|
ACharCode := QtKeyToLCLKey(QKeyEvent_key(QKeyEventH(Event)), Text, QKeyEventH(Event));
|
||||||
KeyMsg.CharCode := ACharCode;
|
KeyMsg.CharCode := ACharCode;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user