@@ -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