feat(autofill): la barrette s'efface quand la souris la quitte
Clic droit dessus -> 100/75/50/25 %, persiste en pref DPAPI. Pas dans settings_json : la barrette peut etre allumee coffre ferme, ou aucune session n'existe pour lire les reglages du serveur. Le survol est sonde toutes les 200 ms plutot que suivi par TrackMouseEvent : avec quatre fenetres enfants, passer de la barrette a un bouton envoie deja un WM_MOUSELEAVE au parent, et il faudrait suivre la souris sur les cinq fenetres pour recoller les morceaux. Le menu appartient a la fenetre message-only : TrackPopupMenu reclame un SetForegroundWindow pour se refermer seul, et le faire sur la barrette detruirait le NOACTIVATE qui la fait fonctionner. Transparente n'est pas traversante - les clics sont toujours avales. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -190,6 +190,21 @@ Détails :
|
||||
- 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.
|
||||
- **Transparence au repos** (`WS_EX_LAYERED` + `SetLayeredWindowAttributes`) :
|
||||
pleine opacité quand la souris est dessus, `FLazyAlphaPct` sinon. Réglée par
|
||||
**clic droit sur la barrette** → 100/75/50/25 %, persistée en pref DPAPI
|
||||
(`lazyAlphaPct`, défaut 60) — **pas** dans `settings_json`, qui exige une
|
||||
session alors que la barrette peut être allumée coffre fermé. Le menu
|
||||
appartient à la fenêtre message-only : `TrackPopupMenu` réclame un
|
||||
`SetForegroundWindow` pour se refermer seul, et le faire sur la barrette
|
||||
détruirait le `NOACTIVATE` qui la fait fonctionner. Deux portes vers ce menu —
|
||||
`WM_NCRBUTTONUP` (le fond est non-client à cause de `HTCAPTION`) et
|
||||
`WM_CONTEXTMENU` (remonté par les boutons).
|
||||
- Le survol est **sondé** par un `SetTimer` de 200 ms, pas par `TrackMouseEvent` :
|
||||
avec quatre fenêtres enfants, passer de la barrette à un bouton envoie déjà un
|
||||
`WM_MOUSELEAVE` au parent. Comparer le curseur au rectangle ignore ce piège.
|
||||
- Transparente **n'est pas traversante** : la barrette avale toujours les clics
|
||||
sur toute sa surface (`WS_EX_TRANSPARENT` contredirait ses boutons).
|
||||
- **Thème** : boutons `BS_OWNERDRAW` + `WM_DRAWITEM`, palette recopiée des
|
||||
variables de `css/style.css` en COLORREF (`$00BBGGRR` — octets **inversés**
|
||||
par rapport à l'hexa CSS). `SetPreferredAppMode(ForceDark)` ne themise que ce
|
||||
|
||||
Reference in New Issue
Block a user