فهرست منبع

Check if WizardForm is minimized before calling Application.BringToFront.

Works around VCL bug. If Application.BringToFront is called while the app is minimized, the Forms unit's WM_ACTIVATEAPP handler inexplicably sets FAppIconic=False, which causes the next Application.Restore call to be a no-op.

Jordan Russell 9 ماه پیش
والد
کامیت
5e6334e70f
2فایلهای تغییر یافته به همراه6 افزوده شده و 3 حذف شده
  1. 4 2
      Projects/Src/Setup.MainForm.pas
  2. 2 1
      Projects/Src/Setup.WizardForm.pas

+ 4 - 2
Projects/Src/Setup.MainForm.pas

@@ -214,7 +214,8 @@ function TMainForm.Install: Boolean;
             NeedsRestart := True;
         end;
       end;
-      Application.BringToFront;
+      if WizardForm.WindowState <> wsMinimized then  { VCL bug workaround }
+        Application.BringToFront;
     end;
   end;
 
@@ -239,7 +240,8 @@ function TMainForm.Install: Boolean;
       finally
         WindowDisabler.Free;
       end;
-      Application.BringToFront;
+      if WizardForm.WindowState <> wsMinimized then  { VCL bug workaround }
+        Application.BringToFront;
 
       if Error = ERROR_FAIL_RESTART then
         Log('One or more applications could not be restarted.')

+ 2 - 1
Projects/Src/Setup.WizardForm.pas

@@ -1849,7 +1849,8 @@ begin
       DownloadTemporaryFileOrExtract7ZipArchiveProcessMessages := False;
       UpdateCurPageButtonState;
     end;
-    Application.BringToFront;
+    if WindowState <> wsMinimized then  { VCL bug workaround }
+      Application.BringToFront;
   end;
   if Result <> '' then begin
     if PrepareToInstallNeedsRestart then