diff --git a/delphi-backend/Source/PM.SingleInstance.pas b/delphi-backend/Source/PM.SingleInstance.pas index d372450..69606fc 100644 --- a/delphi-backend/Source/PM.SingleInstance.pas +++ b/delphi-backend/Source/PM.SingleInstance.pas @@ -69,6 +69,15 @@ begin CloseHandle(_Mutex); _Mutex := 0; end; + // CEDER LE PREMIER PLAN AVANT DE REVEILLER L'AUTRE. C'est NOUS qui venons de + // recevoir le double-clic de l'utilisateur, donc nous seuls avons le droit de + // passer devant. Sans cette cession, l'instance deja lancee — qui n'a recu + // aucune entree — se voit refuser SetForegroundWindow par Windows : sa + // fenetre se montre DERRIERE les autres, avec seulement son icone dans la + // barre des taches. Mesure avant correctif : visible, non minimisee, pas au + // premier plan. Tous processus parce que le PID de l'autre instance n'est pas connu + // ici ; le droit cede expire a la prochaine entree utilisateur. + AllowSetForegroundWindow(DWORD(-1)); // ASFW_ANY, absent de Winapi.Windows PostMessage(HWND_BROADCAST, WM_PMShowMessage, 0, 0); Result := False; end;