diff --git a/demos/Delphi_VCL/CustomResourceBrowser/uMainForm.pas b/demos/Delphi_VCL/CustomResourceBrowser/uMainForm.pas index eafd7e69..de3a868e 100644 --- a/demos/Delphi_VCL/CustomResourceBrowser/uMainForm.pas +++ b/demos/Delphi_VCL/CustomResourceBrowser/uMainForm.pas @@ -182,7 +182,7 @@ procedure TMainForm.Timer1Timer(Sender: TObject); procedure TMainForm.ChromiumWindow1BeforeClose(Sender: TObject); begin FCanClose := True; - Close; + PostMessage(Handle, WM_CLOSE, 0, 0); end; procedure TMainForm.ChromiumWindow1Close(Sender: TObject); diff --git a/demos/Delphi_VCL/DLLBrowser/uWebBrowser.pas b/demos/Delphi_VCL/DLLBrowser/uWebBrowser.pas index 66bf42bd..01e3c374 100644 --- a/demos/Delphi_VCL/DLLBrowser/uWebBrowser.pas +++ b/demos/Delphi_VCL/DLLBrowser/uWebBrowser.pas @@ -160,7 +160,7 @@ procedure TWebBrowserFrm.Timer1Timer(Sender: TObject); procedure TWebBrowserFrm.ChromiumWindow1BeforeClose(Sender: TObject); begin FCanClose := True; - Close; + PostMessage(Handle, WM_CLOSE, 0, 0); end; procedure TWebBrowserFrm.ChromiumWindow1Close(Sender: TObject); diff --git a/demos/Delphi_VCL/JavaScript/JSDialog/uJSDialogBrowser.pas b/demos/Delphi_VCL/JavaScript/JSDialog/uJSDialogBrowser.pas index ea35bd07..952195be 100644 --- a/demos/Delphi_VCL/JavaScript/JSDialog/uJSDialogBrowser.pas +++ b/demos/Delphi_VCL/JavaScript/JSDialog/uJSDialogBrowser.pas @@ -240,7 +240,7 @@ procedure TJSDialogBrowserFrm.Chromium_OnJsdialog(Sender : TObject; procedure TJSDialogBrowserFrm.ChromiumWindow1BeforeClose(Sender: TObject); begin FCanClose := True; - Close; + PostMessage(Handle, WM_CLOSE, 0, 0); end; procedure TJSDialogBrowserFrm.ChromiumWindow1Close(Sender: TObject); diff --git a/demos/Delphi_VCL/MDIBrowser/uMainForm.pas b/demos/Delphi_VCL/MDIBrowser/uMainForm.pas index fb9b009a..f5432216 100644 --- a/demos/Delphi_VCL/MDIBrowser/uMainForm.pas +++ b/demos/Delphi_VCL/MDIBrowser/uMainForm.pas @@ -184,7 +184,7 @@ procedure TMainForm.ExitBtnClick(Sender: TObject); procedure TMainForm.ChildDestroyedMsg(var aMessage : TMessage); begin // If there are no more child forms we can destroy the main form - if (MDIChildCount = 0) then + if FClosing and (MDIChildCount = 0) then begin ButtonPnl.Enabled := False; FCanClose := True; diff --git a/demos/Delphi_VCL/MDIExternalPumpBrowser/uMainForm.pas b/demos/Delphi_VCL/MDIExternalPumpBrowser/uMainForm.pas index d8f58ca0..c5d0c1ba 100644 --- a/demos/Delphi_VCL/MDIExternalPumpBrowser/uMainForm.pas +++ b/demos/Delphi_VCL/MDIExternalPumpBrowser/uMainForm.pas @@ -195,7 +195,7 @@ procedure TMainForm.ExitBtnClick(Sender: TObject); procedure TMainForm.ChildDestroyedMsg(var aMessage : TMessage); begin // If there are no more child forms we can destroy the main form - if (MDIChildCount = 0) then + if FClosing and (MDIChildCount = 0) then begin ButtonPnl.Enabled := False; FCanClose := True; diff --git a/demos/Delphi_VCL/SimpleBrowser/uSimpleBrowser.pas b/demos/Delphi_VCL/SimpleBrowser/uSimpleBrowser.pas index 221815d2..aa620c26 100644 --- a/demos/Delphi_VCL/SimpleBrowser/uSimpleBrowser.pas +++ b/demos/Delphi_VCL/SimpleBrowser/uSimpleBrowser.pas @@ -150,7 +150,7 @@ procedure TForm1.FormShow(Sender: TObject); procedure TForm1.ChromiumWindow1BeforeClose(Sender: TObject); begin FCanClose := True; - Close; + PostMessage(Handle, WM_CLOSE, 0, 0); end; procedure TForm1.ChromiumWindow1Close(Sender: TObject); diff --git a/demos/Delphi_VCL/SimpleExternalPumpBrowser/uSimpleExternalPumpBrowser.pas b/demos/Delphi_VCL/SimpleExternalPumpBrowser/uSimpleExternalPumpBrowser.pas index f567dfe6..194d296f 100644 --- a/demos/Delphi_VCL/SimpleExternalPumpBrowser/uSimpleExternalPumpBrowser.pas +++ b/demos/Delphi_VCL/SimpleExternalPumpBrowser/uSimpleExternalPumpBrowser.pas @@ -175,7 +175,7 @@ procedure TSimpleExternalPumpBrowserFrm.ChromiumWindow1AfterCreated(Sender: TObj procedure TSimpleExternalPumpBrowserFrm.ChromiumWindow1BeforeClose(Sender: TObject); begin FCanClose := True; - Close; + PostMessage(Handle, WM_CLOSE, 0, 0); end; procedure TSimpleExternalPumpBrowserFrm.ChromiumWindow1Close(Sender: TObject); diff --git a/demos/Delphi_VCL/SubProcess/uSimpleBrowser.pas b/demos/Delphi_VCL/SubProcess/uSimpleBrowser.pas index 001a1aac..0bbda56a 100644 --- a/demos/Delphi_VCL/SubProcess/uSimpleBrowser.pas +++ b/demos/Delphi_VCL/SubProcess/uSimpleBrowser.pas @@ -157,7 +157,7 @@ procedure TForm1.ChromiumWindow1Close(Sender: TObject); procedure TForm1.ChromiumWindow1BeforeClose(Sender: TObject); begin FCanClose := True; - Close; + PostMessage(Handle, WM_CLOSE, 0, 0); end; procedure TForm1.Chromium_OnBeforePopup(Sender: TObject; diff --git a/demos/Lazarus/CustomResourceBrowser/CRBrowser.lps b/demos/Lazarus/CustomResourceBrowser/CRBrowser.lps index 0a42a9fe..339b219a 100644 --- a/demos/Lazarus/CustomResourceBrowser/CRBrowser.lps +++ b/demos/Lazarus/CustomResourceBrowser/CRBrowser.lps @@ -8,9 +8,8 @@ - - + @@ -21,9 +20,10 @@ + - - + + @@ -71,7 +71,7 @@ - + @@ -123,6 +123,10 @@ + + + + diff --git a/demos/Lazarus/CustomResourceBrowser/uMainForm.lfm b/demos/Lazarus/CustomResourceBrowser/uMainForm.lfm index 5c4f8db3..1d7e2900 100644 --- a/demos/Lazarus/CustomResourceBrowser/uMainForm.lfm +++ b/demos/Lazarus/CustomResourceBrowser/uMainForm.lfm @@ -1,7 +1,7 @@ object MainForm: TMainForm - Left = 150 + Left = 386 Height = 658 - Top = 86 + Top = 91 Width = 781 Caption = 'Custom Resource Browser' ClientHeight = 658 diff --git a/demos/Lazarus/CustomResourceBrowser/uMainForm.pas b/demos/Lazarus/CustomResourceBrowser/uMainForm.pas index 7f08df88..da3de566 100644 --- a/demos/Lazarus/CustomResourceBrowser/uMainForm.pas +++ b/demos/Lazarus/CustomResourceBrowser/uMainForm.pas @@ -166,7 +166,7 @@ procedure TMainForm.Timer1Timer(Sender: TObject); procedure TMainForm.ChromiumWindow1BeforeClose(Sender: TObject); begin FCanClose := True; - Close; + PostMessage(Handle, WM_CLOSE, 0, 0); end; procedure TMainForm.ChromiumWindow1Close(Sender: TObject); diff --git a/demos/Lazarus/JavaScript/JSDialog/JSDialogBrowser.lps b/demos/Lazarus/JavaScript/JSDialog/JSDialogBrowser.lps index d46709ea..c4b7c28c 100644 --- a/demos/Lazarus/JavaScript/JSDialog/JSDialogBrowser.lps +++ b/demos/Lazarus/JavaScript/JSDialog/JSDialogBrowser.lps @@ -22,15 +22,15 @@ - - + + - + @@ -46,6 +46,10 @@ + + + + diff --git a/demos/Lazarus/JavaScript/JSDialog/uJSDialogBrowser.pas b/demos/Lazarus/JavaScript/JSDialog/uJSDialogBrowser.pas index 6c1fce5a..1b2b0540 100644 --- a/demos/Lazarus/JavaScript/JSDialog/uJSDialogBrowser.pas +++ b/demos/Lazarus/JavaScript/JSDialog/uJSDialogBrowser.pas @@ -248,7 +248,7 @@ procedure TJSDialogBrowserFrm.Chromium_OnJsdialog(Sender : TObject; procedure TJSDialogBrowserFrm.ChromiumWindow1BeforeClose(Sender: TObject); begin FCanClose := True; - Close; + PostMessage(Handle, WM_CLOSE, 0, 0); end; procedure TJSDialogBrowserFrm.ChromiumWindow1Close(Sender: TObject); diff --git a/demos/Lazarus/SimpleBrowser/SimpleBrowser.lps b/demos/Lazarus/SimpleBrowser/SimpleBrowser.lps index 41cfb981..6c279e9f 100644 --- a/demos/Lazarus/SimpleBrowser/SimpleBrowser.lps +++ b/demos/Lazarus/SimpleBrowser/SimpleBrowser.lps @@ -22,8 +22,8 @@ - - + + diff --git a/demos/Lazarus/SimpleBrowser/uSimpleBrowser.pas b/demos/Lazarus/SimpleBrowser/uSimpleBrowser.pas index 81ab01c5..a3384297 100644 --- a/demos/Lazarus/SimpleBrowser/uSimpleBrowser.pas +++ b/demos/Lazarus/SimpleBrowser/uSimpleBrowser.pas @@ -167,7 +167,7 @@ procedure TForm1.FormShow(Sender: TObject); procedure TForm1.ChromiumWindow1BeforeClose(Sender: TObject); begin FCanClose := True; - Close; + PostMessage(Handle, WM_CLOSE, 0, 0); end; procedure TForm1.ChromiumWindow1Close(Sender: TObject); diff --git a/demos/Lazarus/SimpleExternalPumpBrowser/SimpleExternalPumpBrowser.lps b/demos/Lazarus/SimpleExternalPumpBrowser/SimpleExternalPumpBrowser.lps index f61d7840..cdf84692 100644 --- a/demos/Lazarus/SimpleExternalPumpBrowser/SimpleExternalPumpBrowser.lps +++ b/demos/Lazarus/SimpleExternalPumpBrowser/SimpleExternalPumpBrowser.lps @@ -22,8 +22,8 @@ - - + + diff --git a/demos/Lazarus/SimpleExternalPumpBrowser/uSimpleExternalPumpBrowser.pas b/demos/Lazarus/SimpleExternalPumpBrowser/uSimpleExternalPumpBrowser.pas index 1705a62d..02d415d4 100644 --- a/demos/Lazarus/SimpleExternalPumpBrowser/uSimpleExternalPumpBrowser.pas +++ b/demos/Lazarus/SimpleExternalPumpBrowser/uSimpleExternalPumpBrowser.pas @@ -176,7 +176,7 @@ procedure TSimpleExternalPumpBrowserFrm.ChromiumWindow1AfterCreated(Sender: TObj procedure TSimpleExternalPumpBrowserFrm.ChromiumWindow1BeforeClose(Sender: TObject); begin FCanClose := True; - Close; + PostMessage(Handle, WM_CLOSE, 0, 0); end; procedure TSimpleExternalPumpBrowserFrm.ChromiumWindow1Close(Sender: TObject); diff --git a/demos/Lazarus/SubProcess/SimpleBrowser.lps b/demos/Lazarus/SubProcess/SimpleBrowser.lps index 7ed804dc..97ad38b5 100644 --- a/demos/Lazarus/SubProcess/SimpleBrowser.lps +++ b/demos/Lazarus/SubProcess/SimpleBrowser.lps @@ -20,9 +20,10 @@ + - - + + @@ -31,9 +32,8 @@ - - + diff --git a/demos/Lazarus/SubProcess/uSimpleBrowser.pas b/demos/Lazarus/SubProcess/uSimpleBrowser.pas index f463b46e..6137147d 100644 --- a/demos/Lazarus/SubProcess/uSimpleBrowser.pas +++ b/demos/Lazarus/SubProcess/uSimpleBrowser.pas @@ -157,7 +157,7 @@ procedure TForm1.ChromiumWindow1Close(Sender: TObject); procedure TForm1.ChromiumWindow1BeforeClose(Sender: TObject); begin FCanClose := True; - Close; + PostMessage(Handle, WM_CLOSE, 0, 0); end; procedure TForm1.Chromium_OnBeforePopup(Sender: TObject; diff --git a/source/uCEFChromiumWindow.pas b/source/uCEFChromiumWindow.pas index f6c0102c..3027ecef 100644 --- a/source/uCEFChromiumWindow.pas +++ b/source/uCEFChromiumWindow.pas @@ -78,7 +78,6 @@ TChromiumWindow = class(TCEFWinControl) procedure WndProc(var aMessage: TMessage); override; procedure OnCloseMsg(var aMessage : TMessage); message CEF_DOONCLOSE; - procedure OnBeforeCloseMsg(var aMessage : TMessage); message CEF_DOONBEFORECLOSE; procedure OnAfterCreatedMsg(var aMessage : TMessage); message CEF_AFTERCREATED; {$ENDIF} procedure WebBrowser_OnClose(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); @@ -203,9 +202,7 @@ procedure TChromiumWindow.WebBrowser_OnClose(Sender: TObject; const browser: ICe procedure TChromiumWindow.WebBrowser_OnBeforeClose(Sender: TObject; const browser: ICefBrowser); begin - {$IFDEF MSWINDOWS} - if assigned(FOnBeforeClose) then PostMessage(Handle, CEF_DOONBEFORECLOSE, 0, 0); - {$ENDIF} + if assigned(FOnBeforeClose) then FOnBeforeClose(self); end; procedure TChromiumWindow.WebBrowser_OnAfterCreated(Sender: TObject; const browser: ICefBrowser); @@ -221,11 +218,6 @@ procedure TChromiumWindow.OnCloseMsg(var aMessage : TMessage); if assigned(FOnClose) then FOnClose(self); end; -procedure TChromiumWindow.OnBeforeCloseMsg(var aMessage : TMessage); -begin - if assigned(FOnBeforeClose) then FOnBeforeClose(self); -end; - procedure TChromiumWindow.OnAfterCreatedMsg(var aMessage : TMessage); begin UpdateSize; diff --git a/update_CEF4Delphi.json b/update_CEF4Delphi.json index 8f141cc2..f975c8d8 100644 --- a/update_CEF4Delphi.json +++ b/update_CEF4Delphi.json @@ -1,8 +1,8 @@ { "UpdateLazPackages" : [ { - "ForceNotify" : false, - "InternalVersion" : 14, + "ForceNotify" : true, + "InternalVersion" : 15, "Name" : "cef4delphi_lazarus.lpk", "Version" : "75.0.13.0" }