diff --git a/CLAUDE.md b/CLAUDE.md index 0b70d43..b4d02d8 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -198,6 +198,19 @@ Retour Delphi → JS via `WebBrowser.ExecuteJavaScript('Bridge.onX(...)')`. Combos autofill configurables depuis Settings (synced en DB via `settings_json`). +**Desactiver un raccourci (2026-10-05)** : clic sur le bouton, puis **Suppr** +(ou Retour arriere) → `key: ''` → vk 0, que Delphi n'enregistre pas ; libelle +*Off*. Les combinaisons sont aussi **retenues en pref DPAPI `hotkeys`** (la +requete `autofill/hotkeys` telle quelle, hors suspension de capture) et +**rejouees au demarrage** a la place des valeurs par defaut : `settings_json` +n'arrive qu'apres la connexion, et un `Ctrl+Shift+A` desactive restait pris +tant que le coffre etait ferme. Piege corrige au passage : l'Esc des reglages +(ecouteur `document` en capture, enregistre avant) fermait Settings au lieu +d'annuler la capture — il ignore Esc tant qu'un `[data-capturing="1"]` existe. +**La barrette remplit meme raccourcis coupes** : `onAutofillRequest` recoit +`fromBar`, l'option « Autofill with global hotkey » ne bloque que les +raccourcis. + ## Fill bar (remplir à la souris) Menu du tray → **Fill bar** : une barrette de trois diff --git a/delphi-backend/UMainForm.pas b/delphi-backend/UMainForm.pas index 389527d..0d13cd6 100644 --- a/delphi-backend/UMainForm.pas +++ b/delphi-backend/UMainForm.pas @@ -364,7 +364,13 @@ begin FBridge.OnNewEntryHotkey := BridgeNewEntryHotkey; FBridge.OnQuickSearchRequest := BridgeQuickSearchRequest; FBridge.OnQuickSearchHotkey := BridgeQuickSearchHotkey; - FBridge.RegisterAutofillHotkey; // Ctrl+Shift+L active from startup + // Les combinaisons de la derniere session (dont les raccourcis desactives), + // sinon les valeurs par defaut. + var LSavedHotkeys := PM.UserPrefs.GetPref('hotkeys'); + if LSavedHotkeys <> '' then + HandleBridgeCommand('autofill/hotkeys', LSavedHotkeys) + else + FBridge.RegisterAutofillHotkey; // Ctrl+Shift+L active from startup 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. @@ -1146,6 +1152,13 @@ begin // Ids, not labels: JS owns the wording AND uses them to flag the exact // row in Settings. A combo the user cleared (vk=0) is never listed. var LFailed := ''; + // RETENU EN PREF DPAPI pour etre rejoue au demarrage : les combinaisons + // vivent dans settings_json, lu seulement apres la connexion - un raccourci + // desactive restait donc pris par les valeurs par defaut tant que le coffre + // etait ferme. Pas la suspension de la capture (sans full_vk). Rien de + // secret dedans. + if GetParam('full_vk') <> '' then + PM.UserPrefs.SetPref('hotkeys', AParams); // Quick-search combo is set unconditionally (independent of the // autofill enabled flag) so the picker stays armed even when the // autofill hotkeys are turned off. @@ -1198,9 +1211,10 @@ begin // One notification for the whole batch, naming the combos that failed — // empty string = everything registered. LFailed := LFailed.TrimRight([',', ' ']); - WebBrowser.ExecuteJavaScript( - 'if(window.Bridge&&Bridge.onAutofillHotkeysResult)' + - 'Bridge.onAutofillHotkeysResult("' + LFailed.Replace('"', '') + '")'); + if FBrowserInitialized then + WebBrowser.ExecuteJavaScript( + 'if(window.Bridge&&Bridge.onAutofillHotkeysResult)' + + 'Bridge.onAutofillHotkeysResult("' + LFailed.Replace('"', '') + '")'); end // execute: JS has matched an entry, decrypted the password, and is diff --git a/index.html b/index.html index 8170d91..a4c57c7 100644 --- a/index.html +++ b/index.html @@ -734,7 +734,7 @@

- Click a button, then press your new combo. Needs Ctrl, Alt or Win + a letter / digit / F-key. + Click a button, then press your new combo. Needs Ctrl, Alt or Win + a letter / digit / F-key. Press Delete instead to turn that hotkey off.