From f01c57d2f25b4e66000e8812d5bbc247d53e6bce Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Tue, 6 Jan 2015 16:41:43 +0000 Subject: Modes; when exiting on Escape, also grab keyup event. Also fix post insert. --- content_scripts/mode.coffee | 6 +----- content_scripts/mode_find.coffee | 1 + 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 -- cgit v1.2.3