Skip to content

Commit cb10bb8

Browse files
committed
Added modifier tracking for all the other keys
Ensures the InfoBar tracks for physical and virtual keyboard
1 parent 4466387 commit cb10bb8

File tree

1 file changed

+38
-4
lines changed

1 file changed

+38
-4
lines changed

ui/src/components/WebRTCVideo.tsx

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

74+
// Keyboard related states
75+
const {
76+
setIsShiftActive,
77+
setIsCtrlActive,
78+
setIsAltActive,
79+
setIsMetaActive,
80+
setIsAltGrActive
81+
} = useHidStore();
82+
7483
const [blockWheelEvent, setBlockWheelEvent] = useState(false);
7584

7685
// Misc states and hooks
@@ -402,6 +411,15 @@ export default function WebRTCVideo() {
402411
setIsCapsLockActive(e.getModifierState("CapsLock"));
403412
setIsScrollLockActive(e.getModifierState("ScrollLock"));
404413
}
414+
415+
//setIsNumLockActive(e.getModifierState("NumLock"));
416+
//setIsCapsLockActive(e.getModifierState("CapsLock"));
417+
//setIsScrollLockActive(e.getModifierState("ScrollLock"));
418+
setIsShiftActive(e.getModifierState("Shift"))
419+
setIsCtrlActive(e.getModifierState("Control"))
420+
setIsAltActive(e.getModifierState("Alt"))
421+
setIsMetaActive(e.getModifierState("Meta"))
422+
setIsAltGrActive(e.getModifierState("AltGraph"))
405423

406424
if (code == "IntlBackslash" && ["`", "~"].includes(key)) {
407425
code = "Backquote";
@@ -432,12 +450,17 @@ export default function WebRTCVideo() {
432450
sendKeyboardEvent([...new Set(newKeys)], [...new Set(newModifiers)]);
433451
},
434452
[
435-
handleModifierKeys,
436-
sendKeyboardEvent,
437453
isKeyboardLedManagedByHost,
438454
setIsNumLockActive,
439455
setIsCapsLockActive,
440456
setIsScrollLockActive,
457+
setIsShiftActive,
458+
setIsCtrlActive,
459+
setIsAltActive,
460+
setIsMetaActive,
461+
setIsAltGrActive,
462+
handleModifierKeys,
463+
sendKeyboardEvent
441464
],
442465
);
443466

@@ -452,6 +475,12 @@ export default function WebRTCVideo() {
452475
setIsScrollLockActive(e.getModifierState("ScrollLock"));
453476
}
454477

478+
setIsShiftActive(e.getModifierState("Shift"))
479+
setIsCtrlActive(e.getModifierState("Control"))
480+
setIsAltActive(e.getModifierState("Alt"))
481+
setIsMetaActive(e.getModifierState("Meta"))
482+
setIsAltGrActive(e.getModifierState("AltGraph"))
483+
455484
// Filtering out the key that was just released (keys[e.code])
456485
const newKeys = prev.activeKeys.filter(k => k !== keys[e.code]).filter(Boolean);
457486

@@ -464,12 +493,17 @@ export default function WebRTCVideo() {
464493
sendKeyboardEvent([...new Set(newKeys)], [...new Set(newModifiers)]);
465494
},
466495
[
467-
handleModifierKeys,
468-
sendKeyboardEvent,
469496
isKeyboardLedManagedByHost,
470497
setIsNumLockActive,
471498
setIsCapsLockActive,
472499
setIsScrollLockActive,
500+
setIsShiftActive,
501+
setIsCtrlActive,
502+
setIsAltActive,
503+
setIsMetaActive,
504+
setIsAltGrActive,
505+
handleModifierKeys,
506+
sendKeyboardEvent
473507
],
474508
);
475509

0 commit comments

Comments
 (0)