MuseScore
MuseScore copied to clipboard
Custom hotkey: problematic "shift" modifier
Issue type
UX/Interaction bug (incorrect behaviour)
Bug description
Some keys on computer keyboard has two characters on them, I'll just call them "stacked keys" here for convenience, and use "top character" or "bottom character" to describe.
So combining it with shift key, we have following troubles:
- Default hotkey mapping describes shift + stacked key shortcut in two different forms:
- Form 1: shift with bottom char, like
Shift + .
, which is most commonly used; - Form 2: top char only, like
+
, for only a few shortcuts.
- Form 1: shift with bottom char, like
- User defined hotkeys are always using the top char form, unless editing .xml files;
- The two different forms for the same input can co-exist and cause problems.
Steps to reproduce
Problems demonstrated in video, using action "add accent":
- [0:00 - 0:12] Try binding it to
shift + up
, text only shows 'up' with no shift. Back to score,shift + up
still works as extending selection, andup
itself still works as pitching up a semitone.- it won't work with
up
orshift + up
anyway, even after I delete every hotkey bound toup
andshift+up
(not shown in video). - rebound it to
up
without pressing shift will make it work (not shown in video).
- it won't work with
- [0:16 - 0:25] Try binding it to
shift + .
, which is conflict with "add crescendo" by default. Text shows ">" in form 2, but since "add crescendo" is represented in form 1, there's no conflict warning, and neither "add accent" nor "add crescendo" works now. - [0:33 - 0:44] Try binding it to
shift + =
, which is conflict with "toggle sharp accident" by default. Both in form 2, so reassign warning is shown, and hotkey is properly reassigned.
Screenshots/Screen recordings
https://github.com/musescore/MuseScore/assets/39703247/4a733811-0fb3-4359-ad70-c76b0104901b
MuseScore Version
4.3.0
Regression
I don't know
Operating system
Windows 11 Pro, 22H2
Additional context
Default setting is binding multiple actions with up
, and another binding to up
key won't trigger conflict warning anyway.