diff options
| author | Stephen Blott | 2016-01-31 15:26:46 +0000 |
|---|---|---|
| committer | Stephen Blott | 2016-01-31 15:26:46 +0000 |
| commit | aad03c6d834d81d52c99d62f77fa87d0e5b3384f (patch) | |
| tree | 69bd152980938a2e0ce35e58c72299b7f67a3778 /content_scripts | |
| parent | 8f54de210ebc1109cf9a82eae14296667a37f751 (diff) | |
| download | vimium-aad03c6d834d81d52c99d62f77fa87d0e5b3384f.tar.bz2 | |
Use a count with link hints.
Pass a count to link-hint commands, and the link-hint mode is started that many times (except "with queue").
This resolves the same issue as #1291. However, this:
- does not require re-basing (which is no biggie), and
- keeps all of the count-handling logic (apart from plumbing) in one
place, in `LinkHints.activateMode()`. The link-hints mode itself does
not know anything about count handling.
Serious bug:
- Using `Escape` to exit does not cancel the repeat!
Fixes #1289.
Closes #1291.
Diffstat (limited to 'content_scripts')
| -rw-r--r-- | content_scripts/link_hints.coffee | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/content_scripts/link_hints.coffee b/content_scripts/link_hints.coffee index 54476935..3fcbfd40 100644 --- a/content_scripts/link_hints.coffee +++ b/content_scripts/link_hints.coffee @@ -19,14 +19,16 @@ OPEN_INCOGNITO = name: "incognito" DOWNLOAD_LINK_URL = name: "download" LinkHints = - activateMode: (mode = OPEN_IN_CURRENT_TAB) -> new LinkHintsMode mode + activateMode: (count = 1, mode = OPEN_IN_CURRENT_TAB) -> + if 0 < count + new LinkHintsMode mode, -> LinkHints.activateMode count-1, mode - activateModeToOpenInNewTab: -> @activateMode OPEN_IN_NEW_BG_TAB - activateModeToOpenInNewForegroundTab: -> @activateMode OPEN_IN_NEW_FG_TAB - activateModeToCopyLinkUrl: -> @activateMode COPY_LINK_URL - activateModeWithQueue: -> @activateMode OPEN_WITH_QUEUE - activateModeToOpenIncognito: -> @activateMode OPEN_INCOGNITO - activateModeToDownloadLink: -> @activateMode DOWNLOAD_LINK_URL + activateModeToOpenInNewTab: (count) -> @activateMode count, OPEN_IN_NEW_BG_TAB + activateModeToOpenInNewForegroundTab: (count) -> @activateMode count, OPEN_IN_NEW_FG_TAB + activateModeToCopyLinkUrl: (count) -> @activateMode count, COPY_LINK_URL + activateModeWithQueue: -> @activateMode 1, OPEN_WITH_QUEUE + activateModeToOpenIncognito: (count) -> @activateMode count, OPEN_INCOGNITO + activateModeToDownloadLink: (count) -> @activateMode count, DOWNLOAD_LINK_URL class LinkHintsMode hintMarkerContainingDiv: null @@ -43,7 +45,7 @@ class LinkHintsMode # A count of the number of Tab presses since the last non-Tab keyboard event. tabCount: 0 - constructor: (mode = OPEN_IN_CURRENT_TAB) -> + constructor: (mode = OPEN_IN_CURRENT_TAB, onExit = (->)) -> # we need documentElement to be ready in order to append links return unless document.documentElement @isActive = true @@ -80,6 +82,7 @@ class LinkHintsMode @hintMode.onExit => @deactivateMode() if @isActive + @hintMode.onExit onExit @setOpenLinkMode mode |
