diff --git a/ui (gen4)/features/keyboard.js b/ui (gen4)/features/keyboard.js index 6a41ecd5..bce32daf 100755 --- a/ui (gen4)/features/keyboard.js +++ b/ui (gen4)/features/keyboard.js @@ -536,13 +536,18 @@ var KeyboardActions = actions.Actions({ // getKeysForAction: ['- Interface/', function(actions){ - actions = arguments.length == null || actions == '*' ? this.actions + actions = arguments.length == 0 || actions == '*' ? this.actions : arguments.length > 1 ? [].slice.call(arguments) : actions actions = actions instanceof Array ? actions : [actions] var paths = this.getPath(actions) - var help = keyboard.buildKeybindingsHelp(this.keyboard, null, this) + var help = keyboard.buildKeybindingsHelp( + this.keyboard, + null, + this, + function(action){ + return Object.keys(this.getPath(action))[0] }) var res = {} @@ -572,7 +577,11 @@ var KeyboardActions = actions.Actions({ showKeyboardBindings: ['Interface/Show keyboard bindings...', widgets.makeUIDialog('Drawer', function(){ - return keyboard.buildKeybindingsHelpHTML(this.__keyboard_config, this) + return keyboard.buildKeybindingsHelpHTML( + this.__keyboard_config, + this, + function(action){ + return Object.keys(this.getPath(action))[0] }) }, { background: 'white', diff --git a/ui (gen4)/lib/keyboard.js b/ui (gen4)/lib/keyboard.js index eff53181..c97d945c 100755 --- a/ui (gen4)/lib/keyboard.js +++ b/ui (gen4)/lib/keyboard.js @@ -810,7 +810,7 @@ function makeKeyboardHandler(keybindings, unhandled, actions){ // XXX do we show overloaded keys??? var buildKeybindingsHelp = module.buildKeybindingsHelp = -function buildKeybindingsHelp(keybindings, shifted_keys, actions){ +function buildKeybindingsHelp(keybindings, shifted_keys, actions, doc_getter){ shifted_keys = shifted_keys == null ? _SHIFT_KEYS : shifted_keys var res = {} var mode, title @@ -861,6 +861,10 @@ function buildKeybindingsHelp(keybindings, shifted_keys, actions){ var doc = 'Ignored' //continue + // custom doc getter... + } else if(doc_getter && handler.action){ + var doc = doc_getter.call(actions, handler.action) + // standard object doc... } else if('doc' in handler){ var doc = handler.doc @@ -967,8 +971,8 @@ function getKeysByDoc(doc, help){ // var buildKeybindingsHelpHTML = module.buildKeybindingsHelpHTML = -function buildKeybindingsHelpHTML(keybindings, actions){ - var doc = buildKeybindingsHelp(keybindings, null, actions) +function buildKeybindingsHelpHTML(keybindings, actions, doc_getter){ + var doc = buildKeybindingsHelp(keybindings, null, actions, doc_getter) var res = '