diff --git a/demos/Delphi_VCL/SchemeRegistrationBrowser/uSchemeRegistrationBrowser.dfm b/demos/Delphi_VCL/SchemeRegistrationBrowser/uSchemeRegistrationBrowser.dfm index fc3b71fd..ffd03c32 100644 --- a/demos/Delphi_VCL/SchemeRegistrationBrowser/uSchemeRegistrationBrowser.dfm +++ b/demos/Delphi_VCL/SchemeRegistrationBrowser/uSchemeRegistrationBrowser.dfm @@ -70,7 +70,6 @@ object SchemeRegistrationBrowserFrm: TSchemeRegistrationBrowserFrm OnBeforePopup = Chromium1BeforePopup OnAfterCreated = Chromium1AfterCreated OnBeforeClose = Chromium1BeforeClose - OnClose = Chromium1Close Left = 16 Top = 40 end diff --git a/demos/Delphi_VCL/SchemeRegistrationBrowser/uSchemeRegistrationBrowser.pas b/demos/Delphi_VCL/SchemeRegistrationBrowser/uSchemeRegistrationBrowser.pas index 80752e6a..6eab7417 100644 --- a/demos/Delphi_VCL/SchemeRegistrationBrowser/uSchemeRegistrationBrowser.pas +++ b/demos/Delphi_VCL/SchemeRegistrationBrowser/uSchemeRegistrationBrowser.pas @@ -36,13 +36,12 @@ type procedure Chromium1BeforeContextMenu(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const params: ICefContextMenuParams; const model: ICefMenuModel); procedure Chromium1ContextMenuCommand(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const params: ICefContextMenuParams; commandId: Integer; eventFlags: TCefEventFlags; out Result: Boolean); procedure Chromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; popup_id: Integer; 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: Boolean; var Result: Boolean); - procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser); procedure GoBtnClick(Sender: TObject); - procedure FormShow(Sender: TObject); procedure Timer1Timer(Sender: TObject); + procedure FormShow(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); @@ -52,7 +51,6 @@ type FClosing : boolean; // Set to True in the CloseQuery event. procedure BrowserCreatedMsg(var aMessage : TMessage); message CEF_AFTERCREATED; - procedure BrowserDestroyMsg(var aMessage : TMessage); message CEF_DESTROY; procedure WMMove(var aMessage : TWMMove); message WM_MOVE; procedure WMMoving(var aMessage : TMessage); message WM_MOVING; procedure WMEnterMenuLoop(var aMessage: TMessage); message WM_ENTERMENULOOP; @@ -86,9 +84,8 @@ uses // Destruction steps // ================= -// 1. FormCloseQuery sets CanClose to FALSE calls TChromium.CloseBrowser which triggers the TChromium.OnClose event. -// 2. TChromium.OnClose sends a CEF_DESTROY message to destroy CEFWindowParent1 in the main thread, which triggers the TChromium.OnBeforeClose event. -// 3. TChromium.OnBeforeClose sets FCanClose := True and sends WM_CLOSE to the form. +// 1. FormCloseQuery sets CanClose to FALSE, destroys CEFWindowParent1 and calls TChromium.CloseBrowser which triggers the TChromium.OnBeforeClose event. +// 2. TChromium.OnBeforeClose sets FCanClose := True and sends WM_CLOSE to the form. procedure GlobalCEFApp_OnRegCustomSchemes(const registrar: TCefSchemeRegistrarRef); begin @@ -141,13 +138,6 @@ begin Result := (targetDisposition in [CEF_WOD_NEW_FOREGROUND_TAB, CEF_WOD_NEW_BACKGROUND_TAB, CEF_WOD_NEW_POPUP, CEF_WOD_NEW_WINDOW]); end; -procedure TSchemeRegistrationBrowserFrm.Chromium1Close(Sender: TObject; - const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); -begin - PostMessage(Handle, CEF_DESTROY, 0, 0); - aAction := cbaDelay; -end; - procedure TSchemeRegistrationBrowserFrm.Chromium1ContextMenuCommand( Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const params: ICefContextMenuParams; commandId: Integer; @@ -198,6 +188,7 @@ begin Visible := False; Chromium1.CloseBrowser(True); + CEFWindowParent1.Free; end; end; @@ -205,7 +196,6 @@ procedure TSchemeRegistrationBrowserFrm.FormCreate(Sender: TObject); begin // You can register the Scheme Handler Factory here or later, for example in a context menu command. CefRegisterSchemeHandlerFactory(CUSTOM_SCHEME_NAME, '', THelloScheme); - Chromium1.RuntimeStyle := CEF_RUNTIME_STYLE_ALLOY; end; procedure TSchemeRegistrationBrowserFrm.FormShow(Sender: TObject); @@ -235,11 +225,6 @@ begin AddressBarPnl.Enabled := True; end; -procedure TSchemeRegistrationBrowserFrm.BrowserDestroyMsg(var aMessage : TMessage); -begin - CEFWindowParent1.Free; -end; - procedure TSchemeRegistrationBrowserFrm.WMMove(var aMessage : TWMMove); begin inherited; diff --git a/update_CEF4Delphi.json b/update_CEF4Delphi.json index 4db81bf0..82838798 100644 --- a/update_CEF4Delphi.json +++ b/update_CEF4Delphi.json @@ -2,7 +2,7 @@ "UpdateLazPackages" : [ { "ForceNotify" : true, - "InternalVersion" : 702, + "InternalVersion" : 703, "Name" : "cef4delphi_lazarus.lpk", "Version" : "133.4.6" }