feat(autofill): la barrette revient la ou on l'avait posee

Pref DPAPI lazyPos, ecrite sur WM_EXITSIZEMOVE - une ecriture par
deplacement, pas une par pixel parcouru.

La position n'est reprise que si MonitorFromRect la trouve encore sur un
ecran. La barrette n'a pas d'entree dans la barre des taches : une
position heritee d'un ecran debranche, ou d'une resolution changee, la
laisserait hors du bureau et definitivement irrecuperable.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
r-zakarya
2026-08-26 16:20:02 +01:00
parent 7fa26858e3
commit 9ce07ae5d0
2 changed files with 42 additions and 5 deletions
+7 -1
View File
@@ -186,7 +186,13 @@ Détails :
(elle finit par se poser sur le champ qu'elle remplit, il faut pouvoir la
pousser). `WM_ERASEBKGND` peint le fond — la classe `TPUtilWindow`
d'`AllocateHWnd` n'a **pas** de brosse de fond.
- Position : coin bas-droit de la *work area* au démarrage, **pas persistée**.
- Position : coin bas-droit de la *work area* au premier lancement, puis
**retenue** en pref DPAPI (`lazyPos`, `'x,y'`), écrite sur `WM_EXITSIZEMOVE`
(une écriture par déplacement, pas une par pixel parcouru). Elle n'est reprise
que si `MonitorFromRect(…, MONITOR_DEFAULTTONULL)` la trouve encore sur un
écran : la barrette n'a **pas d'entrée dans la barre des tâches**, donc une
position héritée d'un écran débranché la rendrait définitivement
irrécupérable.
- Le `X` **poste** `WM_LAZY_CLOSE` à la fenêtre message-only au lieu de détruire
sur place : libérer une fenêtre depuis son propre gestionnaire libérerait, en
plein envoi, l'instance qui lui sert de window proc.