1
0
mirror of https://github.com/salvadordf/CEF4Delphi.git synced 2025-11-23 21:34:53 +02:00

Fixed issue #446 : OSR browsers don't show the blinking caret when you click on an editable element

This commit is contained in:
salvadordf
2023-03-11 17:29:30 +01:00
parent 6b042e813a
commit 4150a65980
33 changed files with 3351 additions and 5659 deletions

View File

@@ -89,6 +89,7 @@ type
procedure Chromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue; var noJavascriptAccess, Result: Boolean);
procedure Chromium1TitleChange(Sender: TObject; const browser: ICefBrowser; const title: ustring);
procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser);
procedure Chromium1CanFocus(Sender: TObject);
protected
FPopUpBitmap : TBitmap;
@@ -121,6 +122,7 @@ type
procedure WMExitMenuLoop(var aMessage: TMessage); message WM_EXITMENULOOP;
procedure PendingResizeMsg(var aMessage : TMessage); message CEF_PENDINGRESIZE;
procedure ShowChildMsg(var aMessage : TMessage); message CEF_SHOWCHILD;
procedure FocusEnabledMsg(var aMessage : TMessage); message CEF_FOCUSENABLED;
public
function CreateClientHandler(var windowInfo : TCefWindowInfo; var client : ICefClient; const targetFrameName : string; const popupFeatures : TCefPopupFeatures) : boolean;
@@ -348,6 +350,14 @@ begin
end;
end;
procedure TChildForm.Chromium1CanFocus(Sender: TObject);
begin
// The browser required some time to create associated internal objects
// before being able to accept the focus. Now we can set the focus on the
// TBufferPanel control
PostMessage(Handle, CEF_FOCUSENABLED, 0, 0);
end;
procedure TChildForm.Chromium1CursorChange( Sender : TObject;
const browser : ICefBrowser;
cursor_ : TCefCursorHandle;
@@ -819,6 +829,14 @@ begin
Show;
end;
procedure TChildForm.FocusEnabledMsg(var aMessage : TMessage);
begin
if Panel1.Focused then
Chromium1.SetFocus(True)
else
Panel1.SetFocus;
end;
procedure TChildForm.DoResize;
begin
try