diff --git a/core/modules/keyboard.js b/core/modules/keyboard.js index 1d818a25f..5e02a706d 100644 --- a/core/modules/keyboard.js +++ b/core/modules/keyboard.js @@ -179,7 +179,7 @@ Key descriptors have the following format: ctrl+enter ctrl+shift+alt+A */ -KeyboardManager.prototype.parseKeyDescriptor = function(keyDescriptor) { +KeyboardManager.prototype.parseKeyDescriptor = function(keyDescriptor,options) { var components = keyDescriptor.split(/\+|\-/), info = { keyCode: 0, @@ -206,6 +206,9 @@ KeyboardManager.prototype.parseKeyDescriptor = function(keyDescriptor) { info.keyCode = this.namedKeys[s]; } } + if(options.keyDescriptor) { + info.keyDescriptor = options.keyDescriptor; + } if(info.keyCode) { return info; } else { @@ -237,6 +240,7 @@ KeyboardManager.prototype.parseKeyDescriptors = function(keyDescriptors,options) lookupName = function(configName) { var keyDescriptors = wiki.getTiddlerText("$:/config/" + configName + "/" + name); if(keyDescriptors) { + options.keyDescriptor = keyDescriptor; result.push.apply(result,self.parseKeyDescriptors(keyDescriptors,options)); } }; @@ -245,7 +249,7 @@ KeyboardManager.prototype.parseKeyDescriptors = function(keyDescriptors,options) }); } } else { - result.push(self.parseKeyDescriptor(keyDescriptor)); + result.push(self.parseKeyDescriptor(keyDescriptor,options)); } }); return result; @@ -276,12 +280,16 @@ KeyboardManager.prototype.checkKeyDescriptor = function(event,keyInfo) { }; KeyboardManager.prototype.checkKeyDescriptors = function(event,keyInfoArray) { + return (this.getMatchingKeyDescriptor(event,keyInfoArray) !== null); +}; + +KeyboardManager.prototype.getMatchingKeyDescriptor = function(event,keyInfoArray) { for(var t=0; t` widget is rendered normally. The keyboard short |!Variables |!Description | |`event-key` |The <<.var event-key>> variable contains the character, if possible. eg: `1`. You can experiment with some settings at: [[Key Codes (Example)]] | |`event-code` |The <<.var event-code>> variable contains a character description. eg: `Digit1` instead of `1`. Or `Space` instead of an empty string ` `, which is hard to see| +|`event-key-descriptor` |The <<.var event-key-descriptor>> variable is available if the keyboard event captured was configured using a [[keyboard shortcut descriptor|Keyboard Shortcut Descriptor]] of the form `((my-shortcut))` which references a configuration tiddler. | |`modifier` |The [[modifier Variable]] contains the Modifier Key held during the event (can be normal, ctrl, shift, alt or combinations thereof) | ! Key Strings