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