diff options
| author | Stephen Blott | 2015-05-29 06:43:19 +0100 |
|---|---|---|
| committer | Stephen Blott | 2015-05-29 06:43:19 +0100 |
| commit | 42fa6e9506d95073e0ca6924b1b9a082d23bd483 (patch) | |
| tree | eb9e526f6f57ab4e49ff9e0579d26a9c648df521 /pages | |
| parent | 67e012f2c9de903deeaa5ade730161665a0bf430 (diff) | |
| parent | 45157bc460494503ca2b90caa762e72d224a1ef3 (diff) | |
| download | vimium-42fa6e9506d95073e0ca6924b1b9a082d23bd483.tar.bz2 | |
Merge branch 'completion-on-custom-search-only' into completion-on-custom-search-only-merge
Conflicts:
background_scripts/completion.coffee
Diffstat (limited to 'pages')
| -rw-r--r-- | pages/options.html | 3 | ||||
| -rw-r--r-- | pages/vomnibar.coffee | 14 | ||||
| -rw-r--r-- | pages/vomnibar.css | 1 |
3 files changed, 14 insertions, 4 deletions
diff --git a/pages/options.html b/pages/options.html index 8535823d..0fa5b18d 100644 --- a/pages/options.html +++ b/pages/options.html @@ -238,6 +238,8 @@ b: http://b.com/?q=%s description </tr> <!-- Vimium Labs --> + <!-- + Disabled. But we leave this code here as a template for the next time we need to introduce "Vimium Labs". <tr> <td colspan="2"><header>Vimium Labs</header></td> </tr> @@ -263,6 +265,7 @@ b: http://b.com/?q=%s description <input id="omniSearchWeight" type="number" min="0.0" max="1.0" step="0.05" />(0 to 1) </td> </tr> + --> </tbody> </table> </div> diff --git a/pages/vomnibar.coffee b/pages/vomnibar.coffee index 423ffa59..71f22900 100644 --- a/pages/vomnibar.coffee +++ b/pages/vomnibar.coffee @@ -76,7 +76,7 @@ class VomnibarUI updateSelection: -> # For custom search engines, we suppress the leading term (e.g. the "w" of "w query terms") within the # vomnibar input. - if @lastReponse.customSearchMode and not @customSearchMode? + if @lastReponse.isCustomSearch and not @customSearchMode? queryTerms = @input.value.trim().split /\s+/ @customSearchMode = queryTerms[0] @input.value = queryTerms[1..].join " " @@ -141,15 +141,23 @@ class VomnibarUI @selection = @completions.length - 1 if @selection < @initialSelectionValue @updateSelection() else if (action == "enter") - if @selection == -1 + isCustomSearchPrimarySuggestion = @completions[@selection]?.isPrimarySuggestion and @lastReponse.engine?.searchUrl? + if @selection == -1 or isCustomSearchPrimarySuggestion query = @input.value.trim() # <Enter> on an empty query is a no-op. return unless 0 < query.length + # First case (@selection == -1). # If the user types something and hits enter without selecting a completion from the list, then: # - If a search URL has been provided, then use it. This is custom search engine request. # - Otherwise, send the query to the background page, which will open it as a URL or create a # default search, as appropriate. - query = Utils.createSearchUrl query, @lastReponse.searchUrl if @lastReponse.searchUrl? + # + # Second case (isCustomSearchPrimarySuggestion). + # Alternatively, the selected completion could be the primary selection for a custom search engine. + # Because the the suggestions are updated asynchronously in omni mode, the user may have typed more + # text than that which is included in the URL associated with the primary suggestion. Therefore, to + # avoid a race condition, we construct the query from the actual contents of the input (query). + query = Utils.createSearchUrl query, @lastReponse.engine.searchUrl if isCustomSearchPrimarySuggestion @hide -> chrome.runtime.sendMessage handler: if openInNewTab then "openUrlInNewTab" else "openUrlInCurrentTab" diff --git a/pages/vomnibar.css b/pages/vomnibar.css index b1ed0252..1b19daad 100644 --- a/pages/vomnibar.css +++ b/pages/vomnibar.css @@ -126,7 +126,6 @@ #vomnibar li em { font-style: italic; } #vomnibar li em .vomnibarMatch, #vomnibar li .vomnibarTitle .vomnibarMatch { color: #333; - text-decoration: underline; } #vomnibar li.vomnibarSelected { |
