@desklink/host 0.5.14 → 0.5.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -223,13 +223,26 @@ const named = {
223
223
  Delete: 'Delete', Home: 'Home', End: 'End', PageUp: 'PageUp', PageDown: 'PageDown',
224
224
  Control: 'Control', Shift: 'Shift', Alt: 'Alt', Meta: 'Meta',
225
225
  };
226
+ // A shortcut (Control or Meta plus one character) is a key with its modifiers,
227
+ // not text: typed text is applied without them, so select-all, copy and paste
228
+ // would otherwise arrive as plain letters.
229
+ function chord(event, down) {
230
+ if (composing || !(event.ctrlKey || event.metaKey) || event.key.length !== 1) return false;
231
+ event.preventDefault();
232
+ const modifiers = [['ctrlKey', 'Control'], ['altKey', 'Alt'], ['shiftKey', 'Shift'], ['metaKey', 'Meta']]
233
+ .filter(([flag]) => event[flag]).map(([, name]) => name);
234
+ control({ kind: 'key', character: event.key, down, modifiers });
235
+ return true;
236
+ }
226
237
  keyboard.addEventListener('keydown', (event) => {
238
+ if (chord(event, true)) return;
227
239
  const name = named[event.key];
228
240
  if (composing || name === undefined) return;
229
241
  event.preventDefault();
230
242
  control({ kind: 'key', name, down: true });
231
243
  });
232
244
  keyboard.addEventListener('keyup', (event) => {
245
+ if (chord(event, false)) return;
233
246
  const name = named[event.key];
234
247
  if (composing || name === undefined) return;
235
248
  event.preventDefault();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@desklink/host",
3
- "version": "0.5.14",
3
+ "version": "0.5.16",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -53,7 +53,7 @@
53
53
  "desklink"
54
54
  ],
55
55
  "optionalDependencies": {
56
- "@desklink/host-linux-x64-gnu": "0.5.14",
57
- "@desklink/host-darwin-arm64": "0.5.14"
56
+ "@desklink/host-linux-x64-gnu": "0.5.16",
57
+ "@desklink/host-darwin-arm64": "0.5.16"
58
58
  }
59
59
  }