Compare commits

...

4 Commits

Author SHA1 Message Date
Daniel Lorch 291ad25485
Merge 2a9622b457 into d79f359c43 2025-05-01 09:08:53 +00:00
Daniel Lorch 2a9622b457 Add comment on paste box 2025-05-01 11:08:49 +02:00
Daniel Lorch 294198a126 Add comment on codes and modifiers 2025-05-01 11:02:19 +02:00
Daniel Lorch 3b293ff37f Proper fix for Alt-Gr not being recognized 2025-05-01 10:48:11 +02:00
2 changed files with 12 additions and 2 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 (AltGraph)
// 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["AltGraph"]),
(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,3 +1,5 @@
// 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 = {
ArrowDown: 0x51,
ArrowLeft: 0x50,
@ -97,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 },