diff options
| author | Stephen Blott | 2015-01-02 15:59:58 +0000 |
|---|---|---|
| committer | Stephen Blott | 2015-01-02 17:17:34 +0000 |
| commit | 2d8c478e8086abf80b206d0fd8abc488a035b5cd (patch) | |
| tree | 6587ee3d4f11aef54b5a2c5ccb0989307f865eeb /lib | |
| parent | b7d5e25e353010505db7754e97d4387c8aa6b8fc (diff) | |
| download | vimium-2d8c478e8086abf80b206d0fd8abc488a035b5cd.tar.bz2 | |
Modes; incorporate find mode.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/handler_stack.coffee | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/handler_stack.coffee b/lib/handler_stack.coffee index f56683f1..764461e7 100644 --- a/lib/handler_stack.coffee +++ b/lib/handler_stack.coffee @@ -6,6 +6,7 @@ class HandlerStack @stack = [] @counter = 0 @passDirectlyToPage = new Object() # Used only as a constant, distinct from any other value. + @eventConsumed = new Object() # Used only as a constant, distinct from any other value. genId: -> @counter = ++@counter @@ -32,6 +33,10 @@ class HandlerStack # event through to the underlying page. The event is not suppresssed. if passThrough == @passDirectlyToPage return false + # If the constant @eventConsumed is returned, then discontinue further bubbling and + # return false. + if passThrough == @eventConsumed + return false true remove: (id = @currentId) -> @@ -51,5 +56,10 @@ class HandlerStack handler() true + # Convenience wrapper for handlers which never continue propagation. + neverPropagate: (handler) -> + handler() + false + root.HandlerStack = HandlerStack root.handlerStack = new HandlerStack |
