mirror of
https://github.com/storytold/lightcraft.git
synced 2026-10-26 02:59:17 -06:00
When a saved keymap gave a key to one command and a later build declared the same key as another command's default, one press ran both commands, and menus and Help > Keyboard Shortcuts listed the key on both. binding() now drops a declared shortcut while the keymap gives its key to another known command, other than its contextual partner. handle(), conflicts(), shortcut_of(), the menus and the shortcut editor read it. In the editor such a row counts as changed, so its restore button takes the key back. handle() also let every saved entry stop the fixed keys on its key (Enter in the grid, secondary keys such as Shift+X, the rating and label digits, Home, End and Shift+arrows), including entries for commands the build does not know. It now reads only the entries of known commands, as binding() does, so a stale entry in ui.json no longer silences Shift+X, a rating digit or a label digit.