diff options
| author | Stephen Blott | 2015-01-17 14:20:57 +0000 | 
|---|---|---|
| committer | Stephen Blott | 2015-01-17 14:20:57 +0000 | 
| commit | 9eedb3e2288dfaa401159740e32e14f682217ff4 (patch) | |
| tree | 9ac7e0926a9dfbb1421fb5e18f21af0ab1f35a7c /content_scripts/link_hints.coffee | |
| parent | 9ecbd553e1db84cdc07baf3209a24abd827b3c38 (diff) | |
| download | vimium-9eedb3e2288dfaa401159740e32e14f682217ff4.tar.bz2 | |
Rework modifier key handling for link hints.
Mainly reduce code duplication.
Diffstat (limited to 'content_scripts/link_hints.coffee')
| -rw-r--r-- | content_scripts/link_hints.coffee | 36 | 
1 files changed, 16 insertions, 20 deletions
| diff --git a/content_scripts/link_hints.coffee b/content_scripts/link_hints.coffee index 0c311344..b8f835d2 100644 --- a/content_scripts/link_hints.coffee +++ b/content_scripts/link_hints.coffee @@ -257,26 +257,22 @@ LinkHints =           @mode == OPEN_WITH_QUEUE or           @mode == OPEN_IN_NEW_BG_TAB or           @mode == OPEN_IN_NEW_FG_TAB)) -      # Toggle whether to open link in a new or current tab. -      prev_mode = @mode - -      if event.keyCode == keyCodes.shiftKey -        @setOpenLinkMode(if @mode is OPEN_IN_CURRENT_TAB then OPEN_IN_NEW_BG_TAB else OPEN_IN_CURRENT_TAB) - -        handlerStack.push -          keyup: (event) => -            return if (event.keyCode != keyCodes.shiftKey) -            @setOpenLinkMode prev_mode if @isActive -            handlerStack.remove() - -      else # event.keyCode == keyCodes.ctrlKey -        @setOpenLinkMode(if @mode is OPEN_IN_NEW_FG_TAB then OPEN_IN_NEW_BG_TAB else OPEN_IN_NEW_FG_TAB) - -        handlerStack.push -          keyup: (event) => -            return if (event.keyCode != keyCodes.ctrlKey) -            @setOpenLinkMode prev_mode if @isActive -            handlerStack.remove() +      # Toggle whether to open the link in a new or current tab. +      previousMode = @mode +      keyCode = event.keyCode + +      switch keyCode +        when keyCodes.shiftKey +          @setOpenLinkMode(if @mode is OPEN_IN_CURRENT_TAB then OPEN_IN_NEW_BG_TAB else OPEN_IN_CURRENT_TAB) +        when keyCodes.ctrlKey +          @setOpenLinkMode(if @mode is OPEN_IN_NEW_FG_TAB then OPEN_IN_NEW_BG_TAB else OPEN_IN_NEW_FG_TAB) + +      handlerStack.push +        keyup: (event) => +          return true if (event.keyCode != keyCode) +          @setOpenLinkMode previousMode if @isActive +          handlerStack.remove() +          true      # TODO(philc): Ignore keys that have modifiers.      if (KeyboardUtils.isEscape(event)) | 
