This commit is contained in:
Daniel Lorch 2025-05-04 01:42:49 +00:00 committed by GitHub
commit eced5b63fe
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 18 additions and 4 deletions

View File

@ -330,11 +330,25 @@ export default function WebRTCVideo() {
)
// Alt: Keep if Alt is pressed or if the key isn't an Alt key
// Example: If altKey is true, keep all modifiers
// If altKey is false, filter out 0x04 (AltLeft) and 0x40 (AltRight)
// If altKey is false, filter out 0x04 (AltLeft)
//
// But intentionally do not filter out 0x40 (AltRight) to enable Alt Gr
// (Alt Graph) as a modifier. The altKey attribute is set to false on
// key combinations involving the Alt Gr key, which means the modifier
// would otherwise be unintentionally removed from the filteredModifiers
// list.
//
// For example, the KeyboardEvent for Alt Gr + 2 has the following structure:
// - altKey: false
// - code: "Digit2"
// - type: ["keydown"|"keyup"]
//
// Adding and removing 0x40 (AltRight) from and to the list of active
// modifiers is handled by keyUpHandler an keyDownHandler.
.filter(
modifier =>
altKey ||
(modifier !== modifiers["AltLeft"] && modifier !== modifiers["AltRight"]),
(modifier !== modifiers["AltLeft"]),
)
// Meta: Keep if Meta is pressed or if the key isn't a Meta key
// Example: If metaKey is true, keep all modifiers

View File

@ -1,6 +1,6 @@
// Key codes and modifiers correspond to definitions in the
// [Linux USB HID gadget driver](https://www.kernel.org/doc/Documentation/usb/gadget_hid.txt)
export const keys = {
AltLeft: 0xe2,
AltRight: 0xe6,
ArrowDown: 0x51,
ArrowLeft: 0x50,
ArrowRight: 0x4f,