Honor Num Lock during Remote keyboard capture
Forward numeric keypad identities with Num Lock enabled and preserve held-key pairing across lock changes. Suppress local lock feedback during remote capture so it cannot interrupt incoming speech. Add debug speech and capture-end diagnostics, expand private keypad checks, and repair the suspension probe source list. Validated affected Go packages, focused remote speech race checks, the private X11 Remote input harness, and a reader build. Live physical keyboard, audible PowerShell speech, Braille, and disconnect-cause verification remain pending; the active reader session was left running.
This commit is contained in:
1 parent
abb4890e8a
commit
64f60fe4e8
12 files changed
+120
-18
No files matched your search
@@ -634,6 +634,17 @@ int next_command_key(CommandDevice *device, CommandKey *key) {
|
||||
}
|
||||
key->pressed=(event.type==KeyPress); key->code=event.xkey.keycode;
|
||||
key->symbol=XLookupKeysym(&event.xkey,0);
|
||||
key->remoteSymbol=key->symbol;
|
||||
// Remote keypad identities must follow Num Lock. Keep ordinary command
|
||||
// matching at level zero, and forward Shift separately like other keys.
|
||||
// Retain this identity in the capture owner until the physical release.
|
||||
if (IsKeypadKey(key->symbol)) {
|
||||
unsigned int consumed;
|
||||
KeySym translated;
|
||||
if (XkbLookupKeySym(device->display,event.xkey.keycode,
|
||||
event.xkey.state & device->numlockMask,&consumed,&translated))
|
||||
key->remoteSymbol=translated;
|
||||
}
|
||||
key->modifiers=event.xkey.state & ~device->ignoredModifierMask;
|
||||
key->text[0]=0; key->textSymbol=0;
|
||||
if (device->internalUI && event.type==KeyPress) {
|
||||
|
||||
Reference in new issue
Block a user