aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--background_scripts/main.coffee4
-rw-r--r--content_scripts/link_hints.coffee14
-rw-r--r--pages/help_dialog.coffee3
3 files changed, 15 insertions, 6 deletions
diff --git a/background_scripts/main.coffee b/background_scripts/main.coffee
index 23b7ab48..cb978db3 100644
--- a/background_scripts/main.coffee
+++ b/background_scripts/main.coffee
@@ -366,10 +366,10 @@ HintCoordinator =
for own frameId, port of @tabState[tabId].ports
@postMessage tabId, parseInt(frameId), messageType, port, request
- prepareToActivateMode: (tabId, originatingFrameId, {modeIndex}) ->
+ prepareToActivateMode: (tabId, originatingFrameId, {modeIndex, isVimiumHelpDialog}) ->
@tabState[tabId] = {frameIds: frameIdsForTab[tabId][..], hintDescriptors: {}, originatingFrameId, modeIndex}
@tabState[tabId].ports = extend {}, portsForTab[tabId]
- @sendMessage "getHintDescriptors", tabId, {modeIndex}
+ @sendMessage "getHintDescriptors", tabId, {modeIndex, isVimiumHelpDialog}
# Receive hint descriptors from all frames and activate link-hints mode when we have them all.
postHintDescriptors: (tabId, frameId, {hintDescriptors}) ->
diff --git a/content_scripts/link_hints.coffee b/content_scripts/link_hints.coffee
index 702ff69d..6e1ebe80 100644
--- a/content_scripts/link_hints.coffee
+++ b/content_scripts/link_hints.coffee
@@ -70,18 +70,26 @@ HintCoordinator =
# place, then Vimium blocks. As a temporary measure, we install a timer to remove it.
Utils.setTimeout 1000, -> suppressKeyboardEvents.exit() if suppressKeyboardEvents?.modeIsActive
@onExit = [onExit]
- @sendMessage "prepareToActivateMode", modeIndex: availableModes.indexOf mode
+ @sendMessage "prepareToActivateMode",
+ modeIndex: availableModes.indexOf(mode), isVimiumHelpDialog: window.isVimiumHelpDialog
# Hint descriptors are global. They include all of the information necessary for each frame to determine
# whether and when a hint from *any* frame is selected. They include the following properties:
# frameId: the frame id of this hint's local frame
# localIndex: the index in @localHints for the full hint descriptor for this hint
# linkText: the link's text for filtered hints (this is null for alphabet hints)
- getHintDescriptors: ({modeIndex}) ->
+ getHintDescriptors: ({modeIndex, isVimiumHelpDialog}) ->
# Ensure that the document is ready and that the settings are loaded.
DomUtils.documentReady => Settings.onLoaded =>
requireHref = availableModes[modeIndex] in [COPY_LINK_URL, OPEN_INCOGNITO]
- @localHints = LocalHints.getLocalHints requireHref
+ # If link hints is launched within the help dialog, then we only offer hints from that frame. This
+ # improves the usability of the help dialog on the options page (particularly for selecting command
+ # names).
+ @localHints =
+ if isVimiumHelpDialog and not window.isVimiumHelpDialog
+ []
+ else
+ LocalHints.getLocalHints requireHref
@localHintDescriptors = @localHints.map ({linkText}, localIndex) -> {frameId, localIndex, linkText}
@sendMessage "postHintDescriptors", hintDescriptors: @localHintDescriptors
diff --git a/pages/help_dialog.coffee b/pages/help_dialog.coffee
index 401c3222..ebcf8486 100644
--- a/pages/help_dialog.coffee
+++ b/pages/help_dialog.coffee
@@ -38,7 +38,7 @@ HelpDialog =
do (element) ->
element.setAttribute "role", "link"
element.addEventListener "click", ->
- commandName = element.textContent.replace("(","").replace ")", ""
+ commandName = element.textContent
chrome.runtime.sendMessage handler: "copyToClipboard", data: commandName
HUD.showForDuration("Yanked #{commandName}.", 2000)
@@ -82,3 +82,4 @@ UIComponentServer.registerHandler (event) ->
root = exports ? window
root.HelpDialog = HelpDialog
+root.isVimiumHelpDialog = true