Currently, when a shortcut overlaps another, both are always executed. An option called Overlap Shortcuts could be added to allow this behavior to be disabled.
Example
We have the following shortcuts: Ctrl+Shif+F and Ctrl+F. Let's say they are associated with sounds 1 and 2, respectively.
If we press Ctrl+Shif+F, both sound 1 and 2 will be played because Ctrl+F is contained in Ctrl+Shif+F, so both are triggered.
This is the current behavior. Equivalent of having the future Overlap Shortcuts option enabled. With Overlap Shortcutsdisabled, only the longer shortcut is triggered. Meaning that, it this example, only sound 1 plays because only Ctrl+Shif+F is triggered.
Technical insight
Since shortcuts are only triggered after a key that overlaps it is released, this should be easy to implement. If a set of keys is pressed, say Ctrl+Shift+F and then a key contained in it is released, say Shift, this will only trigger Ctrl+Shift+F as long as it is the longest key chain being pressed that contains Shift. This with Overlap Shortcutsdisabled.
With Overlap Shortcutsenabled, the key chain in this same scenario will trigger Shift, Ctrl+Shift, Shift+F and Ctrl+Shift+F because they are the possible intersections of Ctrl+Shift+F with Shift.
This will be implemented in a new shortcut system that will handle shortcuts and isolate all of the logic.
Currently, when a shortcut overlaps another, both are always executed. An option called Overlap Shortcuts could be added to allow this behavior to be disabled.
Example
We have the following shortcuts:
Ctrl+Shif+F
andCtrl+F
. Let's say they are associated with sounds 1 and 2, respectively. If we pressCtrl+Shif+F
, both sound 1 and 2 will be played becauseCtrl+F
is contained inCtrl+Shif+F
, so both are triggered.This is the current behavior. Equivalent of having the future Overlap Shortcuts option enabled. With Overlap Shortcuts disabled, only the longer shortcut is triggered. Meaning that, it this example, only sound 1 plays because only
Ctrl+Shif+F
is triggered.Technical insight
Since shortcuts are only triggered after a key that overlaps it is released, this should be easy to implement. If a set of keys is pressed, say
Ctrl+Shift+F
and then a key contained in it is released, sayShift
, this will only triggerCtrl+Shift+F
as long as it is the longest key chain being pressed that containsShift
. This with Overlap Shortcuts disabled.With Overlap Shortcuts enabled, the key chain in this same scenario will trigger
Shift
,Ctrl+Shift
,Shift+F
andCtrl+Shift+F
because they are the possible intersections ofCtrl+Shift+F
withShift
.This will be implemented in a new shortcut system that will handle shortcuts and isolate all of the logic.