This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
A keymap profile may only modify or add keystrokes to the basic set of Shortcuts. If there's a global Shortcut registered, the profile may not remove it - e.g. when the selected profile already contains another binding for an action, it cannot un-bind the action from the original (default) keystroke.
The API of the keymap options storage should be extended to mask out a global shortcut. The proposed way is to create a file "shortcut.removed", which will be interpreted by removing the parent's binding from the result merged key map. The change has to be code both in NbKeyMap (o.n.core) and keymap options. At the same time, I would like to remove ugly handling of keymap switch: currently when keymaps are switched, the global Shortcut folder is permanently altered: shortcuts NOT present in the current profile are deleted, shortcuts redefined are created or changed. But shipped keymaps generally only contain differences between the base Shortcut folder and the particular profile. When an effective keymap is built, then selected by the user as the current one, it will permanently change the base keymap (Shortcuts folder). Subsequent merges of Shortcuts + some keymap will produce different results, which is not desirable. The NbKeymap implementation already contains concept of overriding shortcuts by registrations found in a profile folder, so removing the 'sync' step should from keymap option implementation not have any impact.
Created attachment 119558 [details] Proposed changes
Will commit the change tomorrow if there are no objections
implemened in http://hg.netbeans.org/jet-main/rev/3a432d963791
*.shadow_hidden would be more natural than *.removed, since it would align with the syntax of MultiFileSystem masks (and someday might actually be able to use MFS). Probably not important, just a suggestion.