diff options
| author | Stephen Blott | 2015-01-10 16:01:40 +0000 |
|---|---|---|
| committer | Stephen Blott | 2015-01-10 16:21:28 +0000 |
| commit | 704ae28629154a732e20e16d56b23af265d51b85 (patch) | |
| tree | 2a376ded6d1f2890f345c04b5e09f5a49966c7a7 | |
| parent | c554d1fd5b6d81506864516b6f86a14f8672bec5 (diff) | |
| download | vimium-704ae28629154a732e20e16d56b23af265d51b85.tar.bz2 | |
Modes; better printable detection, move to keyboard_utils.
| -rw-r--r-- | content_scripts/mode.coffee | 2 | ||||
| -rw-r--r-- | content_scripts/mode_insert.coffee | 2 | ||||
| -rw-r--r-- | lib/dom_utils.coffee | 3 | ||||
| -rw-r--r-- | lib/keyboard_utils.coffee | 6 |
4 files changed, 8 insertions, 5 deletions
diff --git a/content_scripts/mode.coffee b/content_scripts/mode.coffee index 5c6201e0..19354d94 100644 --- a/content_scripts/mode.coffee +++ b/content_scripts/mode.coffee @@ -119,7 +119,7 @@ class Mode @unshift _name: "mode-#{@id}/suppressPrintableEvents" keypress: (event) => - if DomUtils.isPrintable(event) and + if KeyboardUtils.isPrintable(event) and event.srcElement == @options.suppressPrintableEvents then @suppressEvent else @continueBubbling Mode.updateBadge() if @badge diff --git a/content_scripts/mode_insert.coffee b/content_scripts/mode_insert.coffee index b907f22e..31bae8ec 100644 --- a/content_scripts/mode_insert.coffee +++ b/content_scripts/mode_insert.coffee @@ -121,7 +121,7 @@ new class ContentEditableTrap extends Mode element = document.getSelection()?.anchorNode?.parentElement return element?.isContentEditable and document.activeElement and - DomUtils. isPrintable event and + KeyboardUtils.isPrintable(event) and DomUtils.isDOMDescendant document.activeElement, element root = exports ? window diff --git a/lib/dom_utils.coffee b/lib/dom_utils.coffee index fd2427c4..322188b3 100644 --- a/lib/dom_utils.coffee +++ b/lib/dom_utils.coffee @@ -212,8 +212,5 @@ DomUtils = @remove() false - isPrintable: (event) -> - not (event.metaKey or event.ctrlKey or event.altKey) - root = exports ? window root.DomUtils = DomUtils diff --git a/lib/keyboard_utils.coffee b/lib/keyboard_utils.coffee index d2a843f9..30d99656 100644 --- a/lib/keyboard_utils.coffee +++ b/lib/keyboard_utils.coffee @@ -55,6 +55,12 @@ KeyboardUtils = # c-[ is mapped to ESC in Vim by default. (event.keyCode == @keyCodes.ESC) || (event.ctrlKey && @getKeyChar(event) == '[') + # TODO. This is probably a poor way of detecting printable characters. However, it shouldn't incorrectly + # identify any of chrome's own keyboard shortcuts as printable. + isPrintable: (event) -> + return false if event.metaKey or event.ctrlKey or event.altKey + @getKeyChar(event)?.length == 1 + KeyboardUtils.init() root = exports ? window |
