diff --git a/demos/Delphi_VCL/TabbedBrowser2/uBrowserFrame.dfm b/demos/Delphi_VCL/TabbedBrowser2/uBrowserFrame.dfm index 595f4c9b..de3d76ed 100644 --- a/demos/Delphi_VCL/TabbedBrowser2/uBrowserFrame.dfm +++ b/demos/Delphi_VCL/TabbedBrowser2/uBrowserFrame.dfm @@ -217,7 +217,6 @@ object BrowserFrame: TBrowserFrame OnBeforePopup = Chromium1BeforePopup OnAfterCreated = Chromium1AfterCreated OnBeforeClose = Chromium1BeforeClose - OnClose = Chromium1Close OnOpenUrlFromTab = Chromium1OpenUrlFromTab Left = 40 Top = 72 diff --git a/demos/Delphi_VCL/TabbedBrowser2/uBrowserFrame.pas b/demos/Delphi_VCL/TabbedBrowser2/uBrowserFrame.pas index 07148a61..0f979cfc 100644 --- a/demos/Delphi_VCL/TabbedBrowser2/uBrowserFrame.pas +++ b/demos/Delphi_VCL/TabbedBrowser2/uBrowserFrame.pas @@ -45,7 +45,6 @@ type procedure Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser); procedure Chromium1AddressChange(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const url: ustring); procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser); - procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction: TCefCloseBrowserAction); procedure Chromium1LoadError(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; errorCode: TCefErrorCode; const errorText, failedUrl: ustring); procedure Chromium1LoadingStateChange(Sender: TObject; const browser: ICefBrowser; isLoading, canGoBack, canGoForward: Boolean); procedure Chromium1StatusMessage(Sender: TObject; const browser: ICefBrowser; const value: ustring); @@ -88,7 +87,6 @@ type procedure SetPendingCanGoForward(aValue : boolean); procedure BrowserCreatedMsg(var aMessage : TMessage); message CEF_AFTERCREATED; - procedure BrowserDestroyMsg(var aMessage : TMessage); message CEF_DESTROY; procedure BrowserUpdateCaptionMsg(var aMessage : TMessage); message CEF_UPDATECAPTION; procedure BrowserUpdateAddressMsg(var aMessage : TMessage); message CEF_UPDATEADDRESS; procedure BrowserUpdateStateMsg(var aMessage : TMessage); message CEF_UPDATESTATE; @@ -134,12 +132,10 @@ uses // Destruction steps // ================= -// 1. TBrowserFrame.CloseBrowser sets CanClose to FALSE calls TChromium.CloseBrowser -// which triggers the TChromium.OnClose event. -// 2. TChromium.OnClose sends a CEFBROWSER_DESTROY message to destroy CEFWindowParent1 -// in the main thread, which triggers the TChromium.OnBeforeClose event. -// 3. TChromium.OnBeforeClose triggers the TBrowserFrame.OnBrowserDestroyed event -// which sends a CEF_DESTROYTAB message with the TabID to the main form. +// 1. TBrowserFrame.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 a CEF_DESTROYTAB +// message with the TabID to the main form. constructor TBrowserFrame.Create(AOwner : TComponent); begin @@ -273,7 +269,6 @@ end; procedure TBrowserFrame.CreateBrowser; begin Chromium1.DefaultURL := FHomepage; - Chromium1.RuntimeStyle := CEF_RUNTIME_STYLE_ALLOY; Chromium1.CreateBrowser(CEFWindowParent1); end; @@ -284,6 +279,7 @@ begin FClosing := True; NavControlPnl.Enabled := False; Chromium1.CloseBrowser(True); + FreeAndNil(CEFWindowParent1); end; end; @@ -332,7 +328,8 @@ end; procedure TBrowserFrame.Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser); begin - if assigned(FOnBrowserDestroyed) then FOnBrowserDestroyed(self); + if assigned(FOnBrowserDestroyed) then + FOnBrowserDestroyed(self); end; procedure TBrowserFrame.Chromium1BeforePopup( Sender : TObject; @@ -369,14 +366,6 @@ begin TBrowserTab(Parent).DoOpenUrlFromTab(targetUrl, targetDisposition); end; -procedure TBrowserFrame.Chromium1Close( Sender : TObject; - const browser : ICefBrowser; - var aAction : TCefCloseBrowserAction); -begin - PostMessage(Handle, CEF_DESTROY, 0, 0); - aAction := cbaDelay; -end; - procedure TBrowserFrame.Chromium1LoadError( Sender : TObject; const browser : ICefBrowser; const frame : ICefFrame; @@ -436,11 +425,6 @@ begin NavControlPnl.Enabled := True; end; -procedure TBrowserFrame.BrowserDestroyMsg(var aMessage : TMessage); -begin - CEFWindowParent1.Free; -end; - procedure TBrowserFrame.BrowserUpdateCaptionMsg(var aMessage : TMessage); begin if assigned(FOnBrowserTitleChange) then diff --git a/demos/Delphi_VCL/TabbedBrowser2/uBrowserTab.pas b/demos/Delphi_VCL/TabbedBrowser2/uBrowserTab.pas index 043ff1fe..2e8fb11f 100644 --- a/demos/Delphi_VCL/TabbedBrowser2/uBrowserTab.pas +++ b/demos/Delphi_VCL/TabbedBrowser2/uBrowserTab.pas @@ -125,22 +125,26 @@ procedure TBrowserTab.CreateBrowser(const aHomepage : string); begin CreateFrame(aHomepage); - if (FBrowserFrame <> nil) then FBrowserFrame.CreateBrowser; + if (FBrowserFrame <> nil) then + FBrowserFrame.CreateBrowser; end; procedure TBrowserTab.CloseBrowser; begin - if (FBrowserFrame <> nil) then FBrowserFrame.CloseBrowser; + if (FBrowserFrame <> nil) then + FBrowserFrame.CloseBrowser; end; procedure TBrowserTab.ShowBrowser; begin - if (FBrowserFrame <> nil) then FBrowserFrame.ShowBrowser; + if (FBrowserFrame <> nil) then + FBrowserFrame.ShowBrowser; end; procedure TBrowserTab.HideBrowser; begin - if (FBrowserFrame <> nil) then FBrowserFrame.HideBrowser; + if (FBrowserFrame <> nil) then + FBrowserFrame.HideBrowser; end; procedure TBrowserTab.BrowserFrame_OnBrowserDestroyed(Sender: TObject); diff --git a/demos/Delphi_VCL/TabbedBrowser2/uChildForm.dfm b/demos/Delphi_VCL/TabbedBrowser2/uChildForm.dfm index d97a3129..807353f2 100644 --- a/demos/Delphi_VCL/TabbedBrowser2/uChildForm.dfm +++ b/demos/Delphi_VCL/TabbedBrowser2/uChildForm.dfm @@ -29,7 +29,6 @@ object ChildForm: TChildForm OnBeforePopup = Chromium1BeforePopup OnAfterCreated = Chromium1AfterCreated OnBeforeClose = Chromium1BeforeClose - OnClose = Chromium1Close OnOpenUrlFromTab = Chromium1OpenUrlFromTab Left = 24 Top = 56 diff --git a/demos/Delphi_VCL/TabbedBrowser2/uChildForm.pas b/demos/Delphi_VCL/TabbedBrowser2/uChildForm.pas index ad13d214..67c6a4fe 100644 --- a/demos/Delphi_VCL/TabbedBrowser2/uChildForm.pas +++ b/demos/Delphi_VCL/TabbedBrowser2/uChildForm.pas @@ -32,7 +32,6 @@ type procedure Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser); 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 Chromium1TitleChange(Sender: TObject; const browser: ICefBrowser; const title: ustring); - procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser); procedure Chromium1OpenUrlFromTab(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; out Result: Boolean); @@ -77,11 +76,9 @@ uses // Destruction steps // ================= -// 1. FormCloseQuery sets CanClose to FALSE calls TChromium.CloseBrowser which -// triggers the TChromium.OnClose event. -// 2. TChromium.OnClose sends a CEFBROWSER_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 TChildForm.AfterConstruction; begin @@ -170,12 +167,6 @@ begin Result := not(TMainForm(Owner).DoOpenUrlFromTab(targetUrl, targetDisposition)); end; -procedure TChildForm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); -begin - PostMessage(Handle, CEF_DESTROY, 0, 0); - aAction := cbaDelay; -end; - procedure TChildForm.Chromium1TitleChange(Sender: TObject; const browser: ICefBrowser; const title: ustring); begin try @@ -236,6 +227,7 @@ begin FClosing := True; Visible := False; Chromium1.CloseBrowser(True); + FreeAndNil(CEFWindowParent1); end; end else diff --git a/demos/Delphi_VCL/TabbedBrowser2/uMainForm.pas b/demos/Delphi_VCL/TabbedBrowser2/uMainForm.pas index 6ad3b7bc..29f0483a 100644 --- a/demos/Delphi_VCL/TabbedBrowser2/uMainForm.pas +++ b/demos/Delphi_VCL/TabbedBrowser2/uMainForm.pas @@ -108,13 +108,10 @@ implementation // TBrowserFrame has all the usual code to close CEF4Delphi browsers following // a similar destruction sequence than the MiniBrowser demo : // -// 1. TBrowserTab.CloseBrowser 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 executes the TBrowserFrame.OnBrowserDestroyed -// event which will be used in TBrowserTab to send a CEF_DESTROYTAB message -// to the main form to free the tab. +// 1. TBrowserFrame.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 a CEF_DESTROYTAB +// message with the TabID to the main form. // This demo also uses custom forms to open popup browsers in the same way as // the PopupBrowser2 demo. Please, read the code comments in that demo for all @@ -239,7 +236,6 @@ begin while (i >= 0) do begin // Only count the fully initialized browser tabs and not the one waiting to be used. - if TBrowserTab(BrowserPageCtrl.Pages[i]).Initialized then inc(Result); diff --git a/demos/Lazarus_Windows/TabbedBrowser2/uBrowserFrame.lfm b/demos/Lazarus_Windows/TabbedBrowser2/uBrowserFrame.lfm index 7385ae93..8fefdd26 100644 --- a/demos/Lazarus_Windows/TabbedBrowser2/uBrowserFrame.lfm +++ b/demos/Lazarus_Windows/TabbedBrowser2/uBrowserFrame.lfm @@ -85,7 +85,7 @@ object BrowserFrame: TBrowserFrame end end object URLEditPnl: TPanel - Left = 121 + Left = 123 Height = 35 Top = 0 Width = 774 @@ -96,11 +96,11 @@ object BrowserFrame: TBrowserFrame TabOrder = 1 object URLCbx: TComboBox Left = 0 - Height = 21 + Height = 23 Top = 5 Width = 770 Anchors = [akTop, akLeft, akRight] - ItemHeight = 0 + ItemHeight = 15 ItemIndex = 0 Items.Strings = ( 'https://www.google.com' @@ -153,7 +153,7 @@ object BrowserFrame: TBrowserFrame end end object ConfigPnl: TPanel - Left = 895 + Left = 897 Height = 35 Top = 0 Width = 35 @@ -181,8 +181,8 @@ object BrowserFrame: TBrowserFrame end object StatusBar1: TStatusBar Left = 0 - Height = 19 - Top = 651 + Height = 23 + Top = 647 Width = 932 Panels = < item @@ -192,7 +192,7 @@ object BrowserFrame: TBrowserFrame end object CEFWindowParent1: TCEFWindowParent Left = 0 - Height = 616 + Height = 612 Top = 35 Width = 932 Align = alClient @@ -207,7 +207,6 @@ object BrowserFrame: TBrowserFrame OnBeforePopup = Chromium1BeforePopup OnAfterCreated = Chromium1AfterCreated OnBeforeClose = Chromium1BeforeClose - OnClose = Chromium1Close OnOpenUrlFromTab = Chromium1OpenUrlFromTab Left = 40 Top = 72 diff --git a/demos/Lazarus_Windows/TabbedBrowser2/uBrowserFrame.pas b/demos/Lazarus_Windows/TabbedBrowser2/uBrowserFrame.pas index 0779a58d..42c0027d 100644 --- a/demos/Lazarus_Windows/TabbedBrowser2/uBrowserFrame.pas +++ b/demos/Lazarus_Windows/TabbedBrowser2/uBrowserFrame.pas @@ -47,7 +47,6 @@ type procedure Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser); procedure Chromium1AddressChange(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const url: ustring); procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser); - procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction: TCefCloseBrowserAction); procedure Chromium1LoadError(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; errorCode: Integer; const errorText, failedUrl: ustring); procedure Chromium1LoadingStateChange(Sender: TObject; const browser: ICefBrowser; isLoading, canGoBack, canGoForward: Boolean); procedure Chromium1StatusMessage(Sender: TObject; const browser: ICefBrowser; const value: ustring); @@ -90,7 +89,6 @@ type procedure SetPendingCanGoForward(aValue : boolean); procedure BrowserCreatedMsg(var aMessage : TMessage); message CEF_AFTERCREATED; - procedure BrowserDestroyMsg(var aMessage : TMessage); message CEF_DESTROY; procedure BrowserUpdateCaptionMsg(var aMessage : TMessage); message CEF_UPDATECAPTION; procedure BrowserUpdateAddressMsg(var aMessage : TMessage); message CEF_UPDATEADDRESS; procedure BrowserUpdateStateMsg(var aMessage : TMessage); message CEF_UPDATESTATE; @@ -136,12 +134,10 @@ uses // Destruction steps // ================= -// 1. TBrowserFrame.CloseBrowser sets CanClose to FALSE calls TChromium.CloseBrowser -// which triggers the TChromium.OnClose event. -// 2. TChromium.OnClose sends a CEFBROWSER_DESTROY message to destroy CEFWindowParent1 -// in the main thread, which triggers the TChromium.OnBeforeClose event. -// 3. TChromium.OnBeforeClose triggers the TBrowserFrame.OnBrowserDestroyed event -// which sends a CEF_DESTROYTAB message with the TabID to the main form. +// 1. TBrowserFrame.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 a CEF_DESTROYTAB +// message with the TabID to the main form. constructor TBrowserFrame.Create(AOwner : TComponent); begin @@ -275,7 +271,6 @@ end; procedure TBrowserFrame.CreateBrowser; begin Chromium1.DefaultURL := FHomepage; - Chromium1.RuntimeStyle := CEF_RUNTIME_STYLE_ALLOY; Chromium1.CreateBrowser(CEFWindowParent1); end; @@ -285,7 +280,8 @@ begin begin FClosing := True; NavControlPnl.Enabled := False; - Chromium1.CloseBrowser(True); + Chromium1.CloseBrowser(True); + FreeAndNil(CEFWindowParent1); end; end; @@ -371,14 +367,6 @@ begin TBrowserTab(Parent).DoOpenUrlFromTab(targetUrl, targetDisposition); end; -procedure TBrowserFrame.Chromium1Close( Sender : TObject; - const browser : ICefBrowser; - var aAction : TCefCloseBrowserAction); -begin - PostMessage(Handle, CEF_DESTROY, 0, 0); - aAction := cbaDelay; -end; - procedure TBrowserFrame.Chromium1LoadError( Sender : TObject; const browser : ICefBrowser; const frame : ICefFrame; @@ -438,11 +426,6 @@ begin NavControlPnl.Enabled := True; end; -procedure TBrowserFrame.BrowserDestroyMsg(var aMessage : TMessage); -begin - CEFWindowParent1.Free; -end; - procedure TBrowserFrame.BrowserUpdateCaptionMsg(var aMessage : TMessage); begin if assigned(FOnBrowserTitleChange) then diff --git a/demos/Lazarus_Windows/TabbedBrowser2/uBrowserTab.pas b/demos/Lazarus_Windows/TabbedBrowser2/uBrowserTab.pas index a78856c7..4ff7e72f 100644 --- a/demos/Lazarus_Windows/TabbedBrowser2/uBrowserTab.pas +++ b/demos/Lazarus_Windows/TabbedBrowser2/uBrowserTab.pas @@ -127,22 +127,26 @@ procedure TBrowserTab.CreateBrowser(const aHomepage : string); begin CreateFrame(aHomepage); - if (FBrowserFrame <> nil) then FBrowserFrame.CreateBrowser; + if (FBrowserFrame <> nil) then + FBrowserFrame.CreateBrowser; end; procedure TBrowserTab.CloseBrowser; begin - if (FBrowserFrame <> nil) then FBrowserFrame.CloseBrowser; + if (FBrowserFrame <> nil) then + FBrowserFrame.CloseBrowser; end; procedure TBrowserTab.ShowBrowser; begin - if (FBrowserFrame <> nil) then FBrowserFrame.ShowBrowser; + if (FBrowserFrame <> nil) then + FBrowserFrame.ShowBrowser; end; procedure TBrowserTab.HideBrowser; begin - if (FBrowserFrame <> nil) then FBrowserFrame.HideBrowser; + if (FBrowserFrame <> nil) then + FBrowserFrame.HideBrowser; end; procedure TBrowserTab.BrowserFrame_OnBrowserDestroyed(Sender: TObject); diff --git a/demos/Lazarus_Windows/TabbedBrowser2/uChildForm.lfm b/demos/Lazarus_Windows/TabbedBrowser2/uChildForm.lfm index 2f9c73a8..23fd4094 100644 --- a/demos/Lazarus_Windows/TabbedBrowser2/uChildForm.lfm +++ b/demos/Lazarus_Windows/TabbedBrowser2/uChildForm.lfm @@ -15,7 +15,6 @@ object ChildForm: TChildForm OnCreate = FormCreate OnDestroy = FormDestroy Position = poScreenCenter - LCLVersion = '3.4.0.0' object CEFWindowParent1: TCEFWindowParent Left = 0 Height = 256 @@ -29,7 +28,6 @@ object ChildForm: TChildForm OnBeforePopup = Chromium1BeforePopup OnAfterCreated = Chromium1AfterCreated OnBeforeClose = Chromium1BeforeClose - OnClose = Chromium1Close OnOpenUrlFromTab = Chromium1OpenUrlFromTab Left = 24 Top = 56 diff --git a/demos/Lazarus_Windows/TabbedBrowser2/uChildForm.pas b/demos/Lazarus_Windows/TabbedBrowser2/uChildForm.pas index 80b70433..3e378325 100644 --- a/demos/Lazarus_Windows/TabbedBrowser2/uChildForm.pas +++ b/demos/Lazarus_Windows/TabbedBrowser2/uChildForm.pas @@ -34,7 +34,6 @@ type procedure Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser); 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 Chromium1TitleChange(Sender: TObject; const browser: ICefBrowser; const title: ustring); - procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser); procedure Chromium1OpenUrlFromTab(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; out Result: Boolean); @@ -79,11 +78,9 @@ uses // Destruction steps // ================= -// 1. FormCloseQuery sets CanClose to FALSE calls TChromium.CloseBrowser which -// triggers the TChromium.OnClose event. -// 2. TChromium.OnClose sends a CEFBROWSER_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 TChildForm.AfterConstruction; begin @@ -172,12 +169,6 @@ begin Result := not(TMainForm(Owner).DoOpenUrlFromTab(targetUrl, targetDisposition)); end; -procedure TChildForm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); -begin - PostMessage(Handle, CEF_DESTROY, 0, 0); - aAction := cbaDelay; -end; - procedure TChildForm.Chromium1TitleChange(Sender: TObject; const browser: ICefBrowser; const title: ustring); begin try @@ -237,7 +228,8 @@ begin begin FClosing := True; Visible := False; - Chromium1.CloseBrowser(True); + Chromium1.CloseBrowser(True); + FreeAndNil(CEFWindowParent1); end; end else diff --git a/demos/Lazarus_Windows/TabbedBrowser2/uMainForm.lfm b/demos/Lazarus_Windows/TabbedBrowser2/uMainForm.lfm index 9cade86f..41aad3ca 100644 --- a/demos/Lazarus_Windows/TabbedBrowser2/uMainForm.lfm +++ b/demos/Lazarus_Windows/TabbedBrowser2/uMainForm.lfm @@ -15,7 +15,7 @@ object MainForm: TMainForm OnDestroy = FormDestroy OnShow = FormShow Position = poScreenCenter - LCLVersion = '3.4.0.0' + LCLVersion = '3.6.0.0' object BrowserPageCtrl: TPageControl Left = 32 Height = 703 diff --git a/demos/Lazarus_Windows/TabbedBrowser2/uMainForm.pas b/demos/Lazarus_Windows/TabbedBrowser2/uMainForm.pas index 945de746..c4e7f50e 100644 --- a/demos/Lazarus_Windows/TabbedBrowser2/uMainForm.pas +++ b/demos/Lazarus_Windows/TabbedBrowser2/uMainForm.pas @@ -106,13 +106,10 @@ implementation // TBrowserFrame has all the usual code to close CEF4Delphi browsers following // a similar destruction sequence than the MiniBrowser demo : // -// 1. TBrowserTab.CloseBrowser 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 executes the TBrowserFrame.OnBrowserDestroyed -// event which will be used in TBrowserTab to send a CEF_DESTROYTAB message -// to the main form to free the tab. +// 1. TBrowserFrame.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 a CEF_DESTROYTAB +// message with the TabID to the main form. // This demo also uses custom forms to open popup browsers in the same way as // the PopupBrowser2 demo. Please, read the code comments in that demo for all @@ -155,11 +152,12 @@ end; procedure CreateGlobalCEFApp; begin - GlobalCEFApp := TCefApplication.Create; - GlobalCEFApp.cache := 'cache'; - GlobalCEFApp.EnablePrintPreview := True; - GlobalCEFApp.OnContextInitialized := GlobalCEFApp_OnContextInitialized; - GlobalCEFApp.SetCurrentDir := True; + GlobalCEFApp := TCefApplication.Create; + GlobalCEFApp.RootCache := 'RootCache'; + GlobalCEFApp.cache := 'RootCache\cache'; + GlobalCEFApp.EnablePrintPreview := True; + GlobalCEFApp.OnContextInitialized := GlobalCEFApp_OnContextInitialized; + GlobalCEFApp.SetCurrentDir := True; end; procedure TMainForm.EnableButtonPnl; @@ -209,7 +207,6 @@ begin while (i >= 0) do begin // Only count the fully initialized browser tabs and not the one waiting to be used. - if TBrowserTab(BrowserPageCtrl.Pages[i]).Initialized then inc(Result); diff --git a/update_CEF4Delphi.json b/update_CEF4Delphi.json index aebad58b..a77dd27f 100644 --- a/update_CEF4Delphi.json +++ b/update_CEF4Delphi.json @@ -2,7 +2,7 @@ "UpdateLazPackages" : [ { "ForceNotify" : true, - "InternalVersion" : 691, + "InternalVersion" : 692, "Name" : "cef4delphi_lazarus.lpk", "Version" : "131.4.1" }