Skip to content

Commit 2bcf8a8

Browse files
committed
Added modifier tracking for all the other keys
Ensures the InfoBar tracks for physical and virtual keyboard
1 parent 12dfca7 commit 2bcf8a8

File tree

1 file changed

+38
-5
lines changed

1 file changed

+38
-5
lines changed

ui/src/components/WebRTCVideo.tsx

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,15 @@ export default function WebRTCVideo() {
6767
const hdmiError = ["no_lock", "no_signal", "out_of_range"].includes(hdmiState);
6868
const isVideoLoading = !isPlaying;
6969

70+
// Keyboard related states
71+
const {
72+
setIsShiftActive,
73+
setIsCtrlActive,
74+
setIsAltActive,
75+
setIsMetaActive,
76+
setIsAltGrActive
77+
} = useHidStore();
78+
7079
// Misc states and hooks
7180
const disableVideoFocusTrap = useUiStore(state => state.disableVideoFocusTrap);
7281
const [send] = useJsonRpc();
@@ -361,13 +370,21 @@ export default function WebRTCVideo() {
361370
// return;
362371
// }
363372

364-
// console.log(document.activeElement);
365373

366374
if (!isKeyboardLedManagedByHost) {
367375
setIsNumLockActive(e.getModifierState("NumLock"));
368376
setIsCapsLockActive(e.getModifierState("CapsLock"));
369377
setIsScrollLockActive(e.getModifierState("ScrollLock"));
370378
}
379+
380+
//setIsNumLockActive(e.getModifierState("NumLock"));
381+
//setIsCapsLockActive(e.getModifierState("CapsLock"));
382+
//setIsScrollLockActive(e.getModifierState("ScrollLock"));
383+
setIsShiftActive(e.getModifierState("Shift"))
384+
setIsCtrlActive(e.getModifierState("Control"))
385+
setIsAltActive(e.getModifierState("Alt"))
386+
setIsMetaActive(e.getModifierState("Meta"))
387+
setIsAltGrActive(e.getModifierState("AltGraph"))
371388

372389
if (code == "IntlBackslash" && ["`", "~"].includes(key)) {
373390
code = "Backquote";
@@ -398,12 +415,17 @@ export default function WebRTCVideo() {
398415
sendKeyboardEvent([...new Set(newKeys)], [...new Set(newModifiers)]);
399416
},
400417
[
401-
handleModifierKeys,
402-
sendKeyboardEvent,
403418
isKeyboardLedManagedByHost,
404419
setIsNumLockActive,
405420
setIsCapsLockActive,
406421
setIsScrollLockActive,
422+
setIsShiftActive,
423+
setIsCtrlActive,
424+
setIsAltActive,
425+
setIsMetaActive,
426+
setIsAltGrActive,
427+
handleModifierKeys,
428+
sendKeyboardEvent
407429
],
408430
);
409431

@@ -418,6 +440,12 @@ export default function WebRTCVideo() {
418440
setIsScrollLockActive(e.getModifierState("ScrollLock"));
419441
}
420442

443+
setIsShiftActive(e.getModifierState("Shift"))
444+
setIsCtrlActive(e.getModifierState("Control"))
445+
setIsAltActive(e.getModifierState("Alt"))
446+
setIsMetaActive(e.getModifierState("Meta"))
447+
setIsAltGrActive(e.getModifierState("AltGraph"))
448+
421449
// Filtering out the key that was just released (keys[e.code])
422450
const newKeys = prev.activeKeys.filter(k => k !== keys[e.code]).filter(Boolean);
423451

@@ -430,12 +458,17 @@ export default function WebRTCVideo() {
430458
sendKeyboardEvent([...new Set(newKeys)], [...new Set(newModifiers)]);
431459
},
432460
[
433-
handleModifierKeys,
434-
sendKeyboardEvent,
435461
isKeyboardLedManagedByHost,
436462
setIsNumLockActive,
437463
setIsCapsLockActive,
438464
setIsScrollLockActive,
465+
setIsShiftActive,
466+
setIsCtrlActive,
467+
setIsAltActive,
468+
setIsMetaActive,
469+
setIsAltGrActive,
470+
handleModifierKeys,
471+
sendKeyboardEvent
439472
],
440473
);
441474

0 commit comments

Comments
 (0)