Compare commits

..

1 Commits

Author SHA1 Message Date
Daniel Lorch eced5b63fe
Merge 20f966c0ac into d79f359c43 2025-05-04 01:42:49 +00:00
1 changed files with 10 additions and 16 deletions

View File

@ -332,25 +332,19 @@ export default function WebRTCVideo() {
// Example: If altKey is true, keep all modifiers // Example: If altKey is true, keep all modifiers
// If altKey is false, filter out 0x04 (AltLeft) // If altKey is false, filter out 0x04 (AltLeft)
// //
// But intentionally do not filter out 0x40 (AltRight) to accomodate // But intentionally do not filter out 0x40 (AltRight) to enable Alt Gr
// Alt Gr (Alt Graph) as a modifier. Oddly, Alt Gr does not declare // (Alt Graph) as a modifier. The altKey attribute is set to false on
// itself to be an altKey. For example, the KeyboardEvent for // key combinations involving the Alt Gr key, which means the modifier
// Alt Gr + 2 has the following structure: // would otherwise be unintentionally removed from the filteredModifiers
// list.
//
// For example, the KeyboardEvent for Alt Gr + 2 has the following structure:
// - altKey: false // - altKey: false
// - code: "Digit2" // - code: "Digit2"
// - type: [ "keydown" | "keyup" ] // - type: ["keydown"|"keyup"]
// //
// For context, filteredModifiers aims to keep track which modifiers // Adding and removing 0x40 (AltRight) from and to the list of active
// are being pressed on the physical keyboard at any point in time. // modifiers is handled by keyUpHandler an keyDownHandler.
// There is logic in the keyUpHandler and keyDownHandler to add and
// remove 0x40 (AltRight) from the list of new modifiers.
//
// But relying on the two handlers alone to track the state of the
// modifier bears the risk that the key up event for Alt Gr could
// get lost while the browser window is temporarily out of focus,
// which means the Alt Gr key state would then be "stuck". At this
// point, we would need to rely on the user to press Alt Gr again
// to properly release the state of that modifier.
.filter( .filter(
modifier => modifier =>
altKey || altKey ||