@@ -67,6 +67,15 @@ export default function WebRTCVideo() {
67
67
const hdmiError = [ "no_lock" , "no_signal" , "out_of_range" ] . includes ( hdmiState ) ;
68
68
const isVideoLoading = ! isPlaying ;
69
69
70
+ // Keyboard related states
71
+ const {
72
+ setIsShiftActive,
73
+ setIsCtrlActive,
74
+ setIsAltActive,
75
+ setIsMetaActive,
76
+ setIsAltGrActive
77
+ } = useHidStore ( ) ;
78
+
70
79
// Misc states and hooks
71
80
const disableVideoFocusTrap = useUiStore ( state => state . disableVideoFocusTrap ) ;
72
81
const [ send ] = useJsonRpc ( ) ;
@@ -361,13 +370,21 @@ export default function WebRTCVideo() {
361
370
// return;
362
371
// }
363
372
364
- // console.log(document.activeElement);
365
373
366
374
if ( ! isKeyboardLedManagedByHost ) {
367
375
setIsNumLockActive ( e . getModifierState ( "NumLock" ) ) ;
368
376
setIsCapsLockActive ( e . getModifierState ( "CapsLock" ) ) ;
369
377
setIsScrollLockActive ( e . getModifierState ( "ScrollLock" ) ) ;
370
378
}
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" ) )
371
388
372
389
if ( code == "IntlBackslash" && [ "`" , "~" ] . includes ( key ) ) {
373
390
code = "Backquote" ;
@@ -398,12 +415,17 @@ export default function WebRTCVideo() {
398
415
sendKeyboardEvent ( [ ...new Set ( newKeys ) ] , [ ...new Set ( newModifiers ) ] ) ;
399
416
} ,
400
417
[
401
- handleModifierKeys ,
402
- sendKeyboardEvent ,
403
418
isKeyboardLedManagedByHost ,
404
419
setIsNumLockActive ,
405
420
setIsCapsLockActive ,
406
421
setIsScrollLockActive ,
422
+ setIsShiftActive ,
423
+ setIsCtrlActive ,
424
+ setIsAltActive ,
425
+ setIsMetaActive ,
426
+ setIsAltGrActive ,
427
+ handleModifierKeys ,
428
+ sendKeyboardEvent
407
429
] ,
408
430
) ;
409
431
@@ -418,6 +440,12 @@ export default function WebRTCVideo() {
418
440
setIsScrollLockActive ( e . getModifierState ( "ScrollLock" ) ) ;
419
441
}
420
442
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
+
421
449
// Filtering out the key that was just released (keys[e.code])
422
450
const newKeys = prev . activeKeys . filter ( k => k !== keys [ e . code ] ) . filter ( Boolean ) ;
423
451
@@ -430,12 +458,17 @@ export default function WebRTCVideo() {
430
458
sendKeyboardEvent ( [ ...new Set ( newKeys ) ] , [ ...new Set ( newModifiers ) ] ) ;
431
459
} ,
432
460
[
433
- handleModifierKeys ,
434
- sendKeyboardEvent ,
435
461
isKeyboardLedManagedByHost ,
436
462
setIsNumLockActive ,
437
463
setIsCapsLockActive ,
438
464
setIsScrollLockActive ,
465
+ setIsShiftActive ,
466
+ setIsCtrlActive ,
467
+ setIsAltActive ,
468
+ setIsMetaActive ,
469
+ setIsAltGrActive ,
470
+ handleModifierKeys ,
471
+ sendKeyboardEvent
439
472
] ,
440
473
) ;
441
474
0 commit comments