mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-15 21:29:50 +02:00
Qt5,Qt6: map unicode chars to lcl keys where possible. issue #41452
This commit is contained in:
parent
baef0f2c7a
commit
17407a1e4d
@ -3496,7 +3496,19 @@ begin
|
||||
// Translates a Qt4 Key to a LCL VK_* key
|
||||
if KeyMsg.CharCode = 0 then
|
||||
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;
|
||||
end;
|
||||
|
||||
|
@ -3494,7 +3494,19 @@ begin
|
||||
// Translates a Qt4 Key to a LCL VK_* key
|
||||
if KeyMsg.CharCode = 0 then
|
||||
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;
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user