From 6518b59860fde8950e61eac7ab689a8289db81c7 Mon Sep 17 00:00:00 2001 From: r-zakarya <82443831+r-zakarya@users.noreply.github.com> Date: Sat, 25 Jul 2026 18:38:26 +0100 Subject: [PATCH] =?UTF-8?q?docs:=20H8=20=E2=80=94=20capturing=20a=20combo?= =?UTF-8?q?=20owned=20by=20another=20app=20(validated)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Covers the swallowed-combo detection, the abandoned-capture timeout, and the internal collision check that only works now that the capture releases our own hotkeys. Co-Authored-By: Claude Opus 4.8 --- TEST_SCENARIOS.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/TEST_SCENARIOS.md b/TEST_SCENARIOS.md index de02a10..60ff370 100644 --- a/TEST_SCENARIOS.md +++ b/TEST_SCENARIOS.md @@ -315,6 +315,14 @@ l'éditeur slideover : créer + éditer une entrée, ajouter/retirer des tags, - **Piège de test** : une app qui capture via un *hook* bas niveau (et non `RegisterHotKey`) avale la frappe sans faire échouer notre enregistrement → hotkey inerte **sans** ⚠. Utiliser AutoHotkey (`^+t::MsgBox`) ou Lightshot pour un vrai conflit. - **Historique** : le message disait « one or both hotkeys » (faux depuis qu'il y en a 3) sans dire lequel ; et un échec sur **Quick search** ou **New entry** n'était écrit que dans le panel debug — invisible en prod, le hotkey semblait juste cassé. +### H8 · capturer un combo déjà pris par une autre app ✅ +- **ACTION** : Settings → cliquer le bouton du hotkey 2FA → presser un combo qu'une autre app détient (ex. `Ctrl+Shift+T`). +- **ATTENDU** : **au relâchement** (pas après un délai), toast « No key registered after Ctrl+Shift. If you did press one, another app already owns that combo — pick a different one. » **et** le bouton reprend son libellé précédent. +- **ACTION 2** : presser un combo libre (ex. `Ctrl+Win+T`) → accepté, actif immédiatement, pas de ⚠. +- **ACTION 3** : cliquer le bouton puis ne rien presser pendant 10 s → « Hotkey capture cancelled — no key was pressed. » et le bouton se restaure (sinon la capture avalerait toutes les frappes jusqu'à Échap). +- **ACTION 4** : cliquer le bouton puis presser un combo **déjà assigné à un autre de nos slots** (ex. `Ctrl+Shift+L`) → « That combo is already used by another hotkey ». Doit fonctionner **sans** déclencher l'autofill : nos 5 hotkeys sont libérés pendant la capture. +- **Historique** : un combo tenu par `RegisterHotKey` (le nôtre **ou** celui d'une autre app) n'atteint jamais WebView2 → la capture restait figée sur « Press combo… » sans message, et la vérif de collision interne était du code mort. + ### H6 · code en fin de période - **ACTION** : presser le hotkey juste avant la fin du compte à rebours de 30 s. - **ATTENDU** : le code tapé est celui de la période **courante** au moment de la frappe (généré à la demande, pas mis en cache).