fix(windows): allow synthetic hotkeys to trigger OpenLess - #948
Draft
H-Chris233 wants to merge 1 commit into
Draft
fix(windows): allow synthetic hotkeys to trigger OpenLess#948H-Chris233 wants to merge 1 commit into
H-Chris233 wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary\n\n- Remove the LLKHF_INJECTED filter so SendInput, keybd_event, and virtual keyboard tools reach the normal OpenLess hotkey dispatcher.\n- Keep configured-hotkey matching, down/up edge de-duplication, left/right modifier separation, combo cancellation, and held-state cleanup on reload/exit.\n- Fix the no-ASR stop path so the capsule is hidden after dry-run or ASR initialization failure.\n- Update Windows smoke scripts to use complete down/up cycles, release all modifiers in inally, and cover 20 iterations each for keybd_event and SendInput.\n- Make smoke tests independent of persisted local hotkey mode and skip the Windows symlink assertion only when error 1314 means the test environment lacks symlink privilege.\n\n## Validation\n\n- Rust tests: 1150 passed, 0 failed\n- cargo build: passed\n- Frontend
pm test: 48 passed\n- Windows keybd_event smoke: 20/20\n- Windows SendInput smoke: 20/20\n- Capsule lifecycle smoke: passed\n- PowerShell smoke AST checks: passed\n- git diff --check: passed\n\nThe Windows release build was attempted but blocked during the third-party oundry-local-sdk build script/native dependency download stage; no unrelated dependency changes were made.\n\n## Scope\n\nThis intentionally accepts synthetic low-level keyboard events from any source, while only configured hotkeys trigger OpenLess. PostMessage(WM_KEYDOWN) and Windows security-desktop/integrity-boundary restrictions remain outside the low-level hook path.\n\n## Checklist\n\n- [x] Synthetic RightControl events accepted by the low-level hook\n- [x] Duplicate down/up and modifier state handling covered\n- [x] Ctrl+A, Alt+Tab, and ordinary unrelated keys remain guarded by existing matching logic\n- [x] Modifier cleanup added to smoke failure paths\n- [ ] Windows release build (blocked by third-party SDK download/build stage)