Open artola opened 1 year ago
I have a similar issue:
this breaks in v3.10.3, works as expected in v3.10.2
@magicdawn You can reproduce your error. https://codepen.io/jaywcjlove/pen/xxQdNQp?editors=0010
@jaywcjlove
Key sequence
you pressed command + left
you pressed command + right
v3.10.2 works as expected, v3.10.3 step 3
not showing
@magicdawn Upgrade v3.10.4
@jaywcjlove It seems that the fix does not work for the above mentioned example, upgraded to v3.10.4:
@artola https://codepen.io/jaywcjlove/pen/NWEgNqo?editors=1010
import hotkeysJs from "https://cdn.skypack.dev/hotkeys-js@3.10.4";
window.addEventListener("DOMContentLoaded", (event) => {
const button = document.querySelector('button');
button.focus();
hotkeys('command+r,command+r+0', undefined, (keyboardEvent, hotkeysEvent) => {
keyboardEvent.preventDefault();
keyboardEvent.stopPropagation();
button.innerHTML = "prevented";
return false;
});
});
This sequence executed above:
CMD + 0 + R
, should be treated asCMD + 0
andCMD + R
.
Thanks @jaywcjlove. But look in my original issue, my expectation is:
This sequence executed above: CMD + 0 + R, should be treated as CMD + 0 and CMD + R.
If that is fulfilled, then the code should trap the keystrokes and avoid a page reload without changing the listeners, but it does not:
import hotkeysJs from "https://cdn.skypack.dev/hotkeys-js@3.10.4";
window.addEventListener("DOMContentLoaded", (event) => {
const button = document.querySelector('button');
button.focus();
hotkeys('command+r', undefined, (keyboardEvent, hotkeysEvent) => {
keyboardEvent.preventDefault();
keyboardEvent.stopPropagation();
button.innerHTML = "prevented";
return false;
});
});
@jaywcjlove
- v3.10.2 https://codepen.io/magicdawn/pen/dyQWBow?editors=1010
- v3.10.3 https://codepen.io/magicdawn/pen/JjeNQYB?editors=1010
Key sequence
- press command and hold.
- press left and release, expect
you pressed command + left
- press right and release, expect
you pressed command + right
v3.10.2 works as expected, v3.10.3
step 3
not showing
I have a similar problem: setup:[cmd+shift+k] and [cmd+shift+b] shortcuts
I think may be you have fixed problem about [cmd+] but not [cmd+shift+].
Multiple keystrokes without release are not properly detected and therefore the shortcut is not fired.
See for example the following Codepen. Here I just try to trap and handle "Cmd+R", when it is not properly detected it is caught Chrome and produces a page reload.
The sequence is:
Use this debug page: https://cdpn.io/pen/debug/gOBvOXr?authentication_hash=ZoABapBwEZGr
The source of this repro: https://codepen.io/artola-the-decoder/pen/gOBvOXr
The expected behaviour is that after a non control key (I mean when a letter, number or symbol) is pressed, the logic should restart.
This sequence executed above:
CMD + 0 + R
, should be treated asCMD + 0
andCMD + R
.Here the same example refactored with
mousetrap
and it works as expected: https://codepen.io/artola-the-decoder/pen/zYmRxVB