1
0
mirror of https://github.com/salvadordf/CEF4Delphi.git synced 2025-09-30 21:28:55 +02:00

Fixed keyboard issue in Lazarus_Linux_QT6\SimpleOSRBrowser

This commit is contained in:
Salvador Díaz Fau
2025-09-20 18:52:54 +02:00
parent b5c6f18cdc
commit de7dbe1359
3 changed files with 30 additions and 5 deletions

View File

@@ -259,9 +259,15 @@ begin
QTKeyEventToCEFKeyEvent(QKeyEventH(Event_), TempCefEvent); QTKeyEventToCEFKeyEvent(QKeyEventH(Event_), TempCefEvent);
TempCefEvent.kind := KEYEVENT_RAWKEYDOWN; TempCefEvent.kind := KEYEVENT_RAWKEYDOWN;
Chromium1.SendKeyEvent(@TempCefEvent); CefKeyEventLog(TempCefEvent); //CefKeyEventLog(TempCefEvent);
Chromium1.SendKeyEvent(@TempCefEvent);
if AdjustCefKeyCharEvent(QKeyEventH(Event_), TempCefEvent) then
begin
TempCefEvent.kind := KEYEVENT_CHAR; TempCefEvent.kind := KEYEVENT_CHAR;
Chromium1.SendKeyEvent(@TempCefEvent); CefKeyEventLog(TempCefEvent); //CefKeyEventLog(TempCefEvent);
Chromium1.SendKeyEvent(@TempCefEvent);
end;
end; end;
procedure TMainForm.Panel1QTKeyRelease(Sender: TObject; Event_: QEventH); procedure TMainForm.Panel1QTKeyRelease(Sender: TObject; Event_: QEventH);
@@ -271,7 +277,8 @@ begin
QTKeyEventToCEFKeyEvent(QKeyEventH(Event_), TempCefEvent); QTKeyEventToCEFKeyEvent(QKeyEventH(Event_), TempCefEvent);
TempCefEvent.kind := KEYEVENT_KEYUP; TempCefEvent.kind := KEYEVENT_KEYUP;
Chromium1.SendKeyEvent(@TempCefEvent); CefKeyEventLog(TempCefEvent); //CefKeyEventLog(TempCefEvent);
Chromium1.SendKeyEvent(@TempCefEvent);
end; end;
procedure TMainForm.Panel1Resize(Sender: TObject); procedure TMainForm.Panel1Resize(Sender: TObject);

View File

@@ -48,6 +48,7 @@ function GdkEventToWindowsKeyCode(Event: PGdkEventKey) : integer;
function GetCefStateModifiers(KeyboardModifiers : QtKeyboardModifiers; NativeModifiers : LongWord) : TCefEventFlags; function GetCefStateModifiers(KeyboardModifiers : QtKeyboardModifiers; NativeModifiers : LongWord) : TCefEventFlags;
function GetCefWindowsKeyCode(key : QtKey) : integer; function GetCefWindowsKeyCode(key : QtKey) : integer;
procedure QTKeyEventToCEFKeyEvent(Event_ : QKeyEventH; var aCEFKeyEvent : TCEFKeyEvent); procedure QTKeyEventToCEFKeyEvent(Event_ : QKeyEventH; var aCEFKeyEvent : TCEFKeyEvent);
function AdjustCefKeyCharEvent(Event_ : QKeyEventH; var aCEFKeyEvent : TCEFKeyEvent): boolean;
{$IFEND} {$IFEND}
{$IFDEF FMX} {$IFDEF FMX}
@@ -739,6 +740,23 @@ begin
else else
aCEFKeyEvent.character := aCEFKeyEvent.unmodified_character; aCEFKeyEvent.character := aCEFKeyEvent.unmodified_character;
end; end;
function AdjustCefKeyCharEvent(Event_ : QKeyEventH; var aCEFKeyEvent : TCEFKeyEvent): boolean;
var
TempKey : WideString;
begin
Result := False;
QKeyEvent_text(Event_, @TempKey);
if (length(TempKey) > 0) then
begin
aCEFKeyEvent.windows_key_code := ord(TempKey[1]);
aCEFKeyEvent.unmodified_character := TempKey[1];
aCEFKeyEvent.character := aCEFKeyEvent.unmodified_character;
Result := True;
end;
end;
{$IFEND} {$IFEND}
{$IFDEF FMX} {$IFDEF FMX}

View File

@@ -2,7 +2,7 @@
"UpdateLazPackages" : [ "UpdateLazPackages" : [
{ {
"ForceNotify" : true, "ForceNotify" : true,
"InternalVersion" : 788, "InternalVersion" : 789,
"Name" : "cef4delphi_lazarus.lpk", "Name" : "cef4delphi_lazarus.lpk",
"Version" : "140.1.14" "Version" : "140.1.14"
} }