aboutsummaryrefslogtreecommitdiffstats
path: root/content_scripts/link_hints.coffee
diff options
context:
space:
mode:
authorStephen Blott2015-01-17 14:20:57 +0000
committerStephen Blott2015-01-17 14:20:57 +0000
commit9eedb3e2288dfaa401159740e32e14f682217ff4 (patch)
tree9ac7e0926a9dfbb1421fb5e18f21af0ab1f35a7c /content_scripts/link_hints.coffee
parent9ecbd553e1db84cdc07baf3209a24abd827b3c38 (diff)
downloadvimium-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.coffee36
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))