fix(tray): do not un-minimise the application we hand the foreground back to

ForceForegroundWindow restores an iconic target, so closing to the tray would pop back open a window the user had deliberately minimised. Skip the handback in that case and leave the choice to Windows. A -tray launch also skips it: it never took the foreground from anyone.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
r-zakarya
2026-07-27 23:14:12 +01:00
parent 33d8df3dee
commit 2a1da8913b
2 changed files with 8 additions and 2 deletions
+5 -1
View File
@@ -726,7 +726,11 @@ begin
// captured our own window as its target. Callers that already placed the
// foreground themselves (post-autofill) pass False.
CaptureForegroundOwner;
if AReturnForeground and (FPrevForeground <> 0) and IsWindow(FPrevForeground) then
// Not when it is minimised: ForceForegroundWindow un-minimises its target, and
// popping another application's window back open is not ours to decide. The
// user put it away — leave the foreground to Windows.
if AReturnForeground and (FPrevForeground <> 0) and IsWindow(FPrevForeground) and
(not IsIconic(FPrevForeground)) then
ForceForegroundWindow(FPrevForeground);
// 1. Hide the visible form via both FMX state and Win32 ShowWindow.