aboutsummaryrefslogtreecommitdiffstats
path: root/content_scripts
diff options
context:
space:
mode:
Diffstat (limited to 'content_scripts')
-rw-r--r--content_scripts/link_hints.coffee14
1 files changed, 13 insertions, 1 deletions
diff --git a/content_scripts/link_hints.coffee b/content_scripts/link_hints.coffee
index 9f21d109..1a2385d3 100644
--- a/content_scripts/link_hints.coffee
+++ b/content_scripts/link_hints.coffee
@@ -262,13 +262,25 @@ LinkHints =
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()
+
# TODO(philc): Ignore keys that have modifiers.
if (KeyboardUtils.isEscape(event))
@deactivateMode()
- else
+ else if (event.keyCode != keyCodes.shiftKey and event.keyCode != keyCodes.ctrlKey)
keyResult = @getMarkerMatcher().matchHintsByKey(hintMarkers, event)
linksMatched = keyResult.linksMatched
delay = keyResult.delay ? 0