feat(autofill): la barrette revient allumee si elle l'etait
Pref DPAPI lazyOn, reprise par RestoreLazyBar depuis FormCreate - apres le theme, parce que la barrette se peint elle-meme, et apres le cablage de OnTrayRestore, dont depend son bouton Open. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -187,6 +187,11 @@ Détails :
|
|||||||
(elle finit par se poser sur le champ qu'elle remplit, il faut pouvoir la
|
(elle finit par se poser sur le champ qu'elle remplit, il faut pouvoir la
|
||||||
pousser). `WM_ERASEBKGND` peint le fond — la classe `TPUtilWindow`
|
pousser). `WM_ERASEBKGND` peint le fond — la classe `TPUtilWindow`
|
||||||
d'`AllocateHWnd` n'a **pas** de brosse de fond.
|
d'`AllocateHWnd` n'a **pas** de brosse de fond.
|
||||||
|
- **L'état allumé/éteint est retenu** en pref DPAPI (`lazyOn`) et repris au
|
||||||
|
démarrage par `RestoreLazyBar`, appelé depuis `FormCreate` **après**
|
||||||
|
`ApplyTitleBarTheme` et après le câblage de `OnTrayRestore` : la barrette se
|
||||||
|
peint elle-même (il lui faut le thème) et son bouton *Open* passe par cet
|
||||||
|
événement.
|
||||||
- Position : coin bas-droit de la *work area* au premier lancement, puis
|
- Position : coin bas-droit de la *work area* au premier lancement, puis
|
||||||
**retenue** en pref DPAPI (`lazyPos`, `'x,y'`), écrite sur `WM_EXITSIZEMOVE`
|
**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
|
(une écriture par déplacement, pas une par pixel parcouru). Elle n'est reprise
|
||||||
|
|||||||
@@ -252,8 +252,12 @@ type
|
|||||||
ARestoreAfter: Boolean = False; AClearFirst: Boolean = True): Boolean;
|
ARestoreAfter: Boolean = False; AClearFirst: Boolean = True): Boolean;
|
||||||
property SecureClipboard: TSecureClipboard read FSecureClipboard;
|
property SecureClipboard: TSecureClipboard read FSecureClipboard;
|
||||||
property TrayAdded: Boolean read FTrayAdded;
|
property TrayAdded: Boolean read FTrayAdded;
|
||||||
// Show or hide the lazy strip. Idempotent.
|
// Show or hide the lazy strip. Idempotent, and remembered across launches.
|
||||||
procedure SetLazyBar(AOn: Boolean);
|
procedure SetLazyBar(AOn: Boolean);
|
||||||
|
// Re-allume la barrette si elle l'etait au dernier arret. A appeler une
|
||||||
|
// fois l'hote pret : le bouton Open a besoin de OnTrayRestore, et la
|
||||||
|
// peinture a besoin du theme.
|
||||||
|
procedure RestoreLazyBar;
|
||||||
function LazyBarVisible: Boolean;
|
function LazyBarVisible: Boolean;
|
||||||
property AutofillRegistered: Boolean read FAutofillRegistered;
|
property AutofillRegistered: Boolean read FAutofillRegistered;
|
||||||
// Per-slot outcome of the last SetAutofillHotkeys — lets the host name
|
// Per-slot outcome of the last SetAutofillHotkeys — lets the host name
|
||||||
@@ -418,6 +422,10 @@ const
|
|||||||
// Coin haut-gauche retenu, 'x,y'. Meme raison que l'opacite d'etre une pref
|
// Coin haut-gauche retenu, 'x,y'. Meme raison que l'opacite d'etre une pref
|
||||||
// DPAPI : la barrette s'allume parfois coffre ferme.
|
// DPAPI : la barrette s'allume parfois coffre ferme.
|
||||||
LAZY_POS_KEY = 'lazyPos';
|
LAZY_POS_KEY = 'lazyPos';
|
||||||
|
// Barrette allumee ou non au dernier arret. Pref DPAPI comme les deux autres :
|
||||||
|
// elle doit revenir AVANT toute ouverture de coffre, et localStorage est vide
|
||||||
|
// a chaque lancement (le port ephemere change d'origine).
|
||||||
|
LAZY_ON_KEY = 'lazyOn';
|
||||||
LAZY_W = 298;
|
LAZY_W = 298;
|
||||||
LAZY_H = 40;
|
LAZY_H = 40;
|
||||||
|
|
||||||
@@ -1296,6 +1304,11 @@ begin
|
|||||||
AMsg.Result := DefWindowProc(FLazyWnd, AMsg.Msg, AMsg.WParam, AMsg.LParam);
|
AMsg.Result := DefWindowProc(FLazyWnd, AMsg.Msg, AMsg.WParam, AMsg.LParam);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TPMBridge.RestoreLazyBar;
|
||||||
|
begin
|
||||||
|
if GetPref(LAZY_ON_KEY) = '1' then SetLazyBar(True);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TPMBridge.SetLazyBar(AOn: Boolean);
|
procedure TPMBridge.SetLazyBar(AOn: Boolean);
|
||||||
|
|
||||||
// BS_OWNERDRAW : le systeme garde le suivi de la souris et l'etat enfonce,
|
// BS_OWNERDRAW : le systeme garde le suivi de la souris et l'etat enfonce,
|
||||||
@@ -1322,6 +1335,7 @@ var
|
|||||||
LX, LY, LPosX, LPosY: Integer;
|
LX, LY, LPosX, LPosY: Integer;
|
||||||
begin
|
begin
|
||||||
if AOn = LazyBarVisible then Exit;
|
if AOn = LazyBarVisible then Exit;
|
||||||
|
if AOn then SetPref(LAZY_ON_KEY, '1') else SetPref(LAZY_ON_KEY, '0');
|
||||||
|
|
||||||
if not AOn then
|
if not AOn then
|
||||||
begin
|
begin
|
||||||
|
|||||||
@@ -312,6 +312,9 @@ begin
|
|||||||
FBridge.OnQuickSearchHotkey := BridgeQuickSearchHotkey;
|
FBridge.OnQuickSearchHotkey := BridgeQuickSearchHotkey;
|
||||||
FBridge.RegisterAutofillHotkey; // Ctrl+Shift+L active from startup
|
FBridge.RegisterAutofillHotkey; // Ctrl+Shift+L active from startup
|
||||||
FBridge.ApplyTitleBarTheme(True); // dark by default, JS may toggle later
|
FBridge.ApplyTitleBarTheme(True); // dark by default, JS may toggle later
|
||||||
|
// Apres le theme et apres OnTrayRestore : la barrette se peint elle-meme, et
|
||||||
|
// son bouton Open passe par cet evenement.
|
||||||
|
FBridge.RestoreLazyBar;
|
||||||
FAutofillTargetHWND := 0;
|
FAutofillTargetHWND := 0;
|
||||||
// Delayed-Navigate timer: TTMSFNCWebBrowser (WebView2 backend) ignores
|
// Delayed-Navigate timer: TTMSFNCWebBrowser (WebView2 backend) ignores
|
||||||
// Navigate() calls until Edge Chromium finishes its async init (~1-2s).
|
// Navigate() calls until Edge Chromium finishes its async init (~1-2s).
|
||||||
|
|||||||
Reference in New Issue
Block a user