You've already forked CEF4Delphi
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:
@@ -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);
|
||||||
TempCefEvent.kind := KEYEVENT_CHAR;
|
Chromium1.SendKeyEvent(@TempCefEvent);
|
||||||
Chromium1.SendKeyEvent(@TempCefEvent); CefKeyEventLog(TempCefEvent);
|
|
||||||
|
if AdjustCefKeyCharEvent(QKeyEventH(Event_), TempCefEvent) then
|
||||||
|
begin
|
||||||
|
TempCefEvent.kind := KEYEVENT_CHAR;
|
||||||
|
//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);
|
||||||
|
@@ -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}
|
||||||
|
@@ -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"
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user