fix(shortcuts): improve key binding validity checks #43
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
true
fromBinding::is_set
if the binding consists only of theSuper
key. This fixes Keyboard > Shortcuts > System > Open the launcher should render default binding "Super" cosmic-settings#394.Binding::from_str
, accept bindings without a key to allow settingSuper
as a shortcut. I also changed it to reject bindings that contain several keys. The old implementation would just ignore everything after the first one.As far as I can tell, both these functions are only used by
cosmic-settings
which i tested without finding any new issues. If there's anything else I should test, let me know.I also noticed that in
cosmic-settings
, the code that focuses any existing invalid keybinding when adding a new one callsBinding::from_str
without then checkingBinding::is_set
for the parsed binding. This should probably also be replaced byBinding::from_str(&shortcut.input).map_or(false, |b| b.is_set())
, unless I'm missing something.