diff options
| author | Stephen Blott | 2015-01-06 16:41:43 +0000 |
|---|---|---|
| committer | Stephen Blott | 2015-01-06 16:41:43 +0000 |
| commit | f01c57d2f25b4e66000e8812d5bbc247d53e6bce (patch) | |
| tree | 95ad75f3a2df79ef507172cadffc76d7938a5a32 | |
| parent | c585331efc1b3c446f0f315a8904fbd9658b1cce (diff) | |
| download | vimium-f01c57d2f25b4e66000e8812d5bbc247d53e6bce.tar.bz2 | |
Modes; when exiting on Escape, also grab keyup event.
Also fix post insert.
| -rw-r--r-- | content_scripts/mode.coffee | 6 | ||||
| -rw-r--r-- | content_scripts/mode_find.coffee | 1 | ||||
| -rw-r--r-- | lib/dom_utils.coffee | 8 |
3 files changed, 10 insertions, 5 deletions
diff --git a/content_scripts/mode.coffee b/content_scripts/mode.coffee index 5a7bead5..857eb140 100644 --- a/content_scripts/mode.coffee +++ b/content_scripts/mode.coffee @@ -151,11 +151,7 @@ class ExitOnEscapeMode extends SingletonMode @exit source: ExitOnEscapeMode event: event - # Suppress the corresponding keyup event too. - handlerStack.push - keyup: (event) -> - @remove() if KeyboardUtils.isEscape event - @suppressEvent + DomUtils.suppressKeyupAfterEscape handlerStack @suppressEvent # This mode exits when element (if defined) loses the focus. diff --git a/content_scripts/mode_find.coffee b/content_scripts/mode_find.coffee index e11b2e0f..44d50608 100644 --- a/content_scripts/mode_find.coffee +++ b/content_scripts/mode_find.coffee @@ -27,6 +27,7 @@ class PostFindMode extends InsertModeBlocker if element == document.activeElement and KeyboardUtils.isEscape event self.exit() new InsertMode element + DomUtils.suppressKeyupAfterEscape handlerStack return false @remove() true diff --git a/lib/dom_utils.coffee b/lib/dom_utils.coffee index ec846e44..1a992b43 100644 --- a/lib/dom_utils.coffee +++ b/lib/dom_utils.coffee @@ -185,5 +185,13 @@ DomUtils = event.preventDefault() @suppressPropagation(event) + # Suppress the next keyup event for Escape. + suppressKeyupAfterEscape: (handlerStack) -> + handlerStack.push + keyup: (event) -> + return true unless KeyboardUtils.isEscape event + @remove() + false + root = exports ? window root.DomUtils = DomUtils |
