diff options
| author | mrmr1993 | 2014-11-02 05:39:07 +0000 |
|---|---|---|
| committer | mrmr1993 | 2014-11-02 05:39:07 +0000 |
| commit | dafa166364ff9a30b0cc2f0d160fcbcfc01cc61e (patch) | |
| tree | 164fb44f28097d5920793c16d55966a9880421b3 /content_scripts/vomnibar.coffee | |
| parent | 8afdaabd2e66a3092bc2b122443956327e0ba679 (diff) | |
| download | vimium-dafa166364ff9a30b0cc2f0d160fcbcfc01cc61e.tar.bz2 | |
Force our key event handlers to have the highest possible priority
* The `window` object receives key events before the `document` object,
and so any event listeners on `window` get priority. This commit
switches from binding `keydown`, `keypress`, `keyup` on `document` to
on `window`.
* We were using `event.stopPropagation()` to prevent other event
listeners from firing if we had handled an event. This stopped the event
from propagating to other elements/objects and triggering their event
listeners, but didn't block event listeners registered on the same
object as ours. Switching to `event.stopImmediatePropagation()` ensures
that our event listener is the last to run for the event.
Fixing these issues allows Vimium to regain control over key events in
Google Groups (eg. the [vimium-dev
group](https://groups.google.com/forum/vimium-dev)).
Diffstat (limited to 'content_scripts/vomnibar.coffee')
| -rw-r--r-- | content_scripts/vomnibar.coffee | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/content_scripts/vomnibar.coffee b/content_scripts/vomnibar.coffee index 22b9ed64..8c6b2059 100644 --- a/content_scripts/vomnibar.coffee +++ b/content_scripts/vomnibar.coffee @@ -139,7 +139,7 @@ class VomnibarUI @hide() # It seems like we have to manually suppress the event here and still return true. - event.stopPropagation() + event.stopImmediatePropagation() event.preventDefault() true |
