This commit is contained in:
Daniel Lorch 2025-05-01 09:08:53 +00:00 committed by GitHub
commit 291ad25485
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 12 additions and 4 deletions

View File

@ -330,11 +330,18 @@ 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)
//
// Special case: Despite the Alt-Gr key being pressed, `altKey' on
// the event `e' is set to `false'. This means we cannot detect if Alt-Gr
// is being pressed while the user e.g. presses the `2' key. Instead, we
// we need to rely on keyUpHandler/keyDownHandler to toggle the state
// for 0x40 (AltRight) and avoid filtering for this code here, so that we
// can remember the state of the Alt-Gr modifier on subsequent key presses.
.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,
@ -99,6 +99,7 @@ export const keys = {
Tab: 0x2b,
} as Record<string, number>;
// Mapping from characters entered into "Paste text" box to key codes and modifiers
export const chars = {
A: { key: "KeyA", shift: true },
B: { key: "KeyB", shift: true },