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 | |
| parent | 9ecbd553e1db84cdc07baf3209a24abd827b3c38 (diff) | |
| download | vimium-9eedb3e2288dfaa401159740e32e14f682217ff4.tar.bz2 | |
Rework modifier key handling for link hints.
Mainly reduce code duplication.
| -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)) |
