diff options
| -rw-r--r-- | content_scripts/mode.coffee | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/content_scripts/mode.coffee b/content_scripts/mode.coffee index 85187b2c..9de423ff 100644 --- a/content_scripts/mode.coffee +++ b/content_scripts/mode.coffee @@ -173,15 +173,16 @@ class Mode @exitHandlers.push handler exit: (args...) -> - if @modeIsActive - @log "deactivate:", @id - unless @modeIsExiting - @modeIsExiting = true - handler args... for handler in @exitHandlers - handlerStack.remove handlerId for handlerId in @handlers - Mode.modes = Mode.modes.filter (mode) => mode != this - @modeIsActive = false - @setIndicator() + return if @modeIsExiting or not @modeIsActive + @log "deactivate:", @id + @modeIsExiting = true + + handler args... for handler in @exitHandlers + handlerStack.remove handlerId for handlerId in @handlers + Mode.modes = Mode.modes.filter (mode) => mode != this + + @modeIsActive = false + @setIndicator() # Debugging routines. logModes: -> |
