about summary refs log tree commit diff
diff options
context:
space:
mode:
authorkennytm <kennytm@gmail.com>2018-04-24 11:57:08 +0800
committerGitHub <noreply@github.com>2018-04-24 11:57:08 +0800
commit05ef5bcb53516436bb38cdb8601a8c4482e9ccce (patch)
tree4bfd69de7992f3e3fd6c6425f68cc193fd56c292
parent7c552a299db51ba35f7a47d0dabd24d6b7ee241b (diff)
parentf33af5c4dedb10bf4eaee0ce2e83c6f05d07692f (diff)
downloadrust-05ef5bcb53516436bb38cdb8601a8c4482e9ccce.tar.gz
rust-05ef5bcb53516436bb38cdb8601a8c4482e9ccce.zip
Rollup merge of #50118 - GuillaumeGomez:search-bar-bug, r=QuietMisdreavus
fix search bar bug

Fixes #50064.

r? @QuietMisdreavus
-rw-r--r--src/librustdoc/html/static/main.js28
1 files changed, 18 insertions, 10 deletions
diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js
index 2cae88855e3..ef8bf2244d9 100644
--- a/src/librustdoc/html/static/main.js
+++ b/src/librustdoc/html/static/main.js
@@ -1375,13 +1375,17 @@
 
         function search(e) {
             var params = getQueryStringParams();
-            var query = getQuery(document.getElementsByClassName('search-input')[0].value.trim());
+            var search_input = document.getElementsByClassName('search-input')[0];
+            var query = getQuery(search_input.value.trim());
 
             if (e) {
                 e.preventDefault();
             }
 
             if (!query.query || query.id === currentResults) {
+                if (query.query.length > 0) {
+                    putBackSearch(search_input);
+                }
                 return;
             }
 
@@ -2072,19 +2076,23 @@
         };
     });
 
+    function putBackSearch(search_input) {
+        if (search_input.value !== "") {
+            addClass(document.getElementById("main"), "hidden");
+            removeClass(document.getElementById("search"), "hidden");
+            if (browserSupportsHistoryApi()) {
+                history.replaceState(search_input.value,
+                                     "",
+                                     "?search=" + encodeURIComponent(search_input.value));
+            }
+        }
+    }
+
     var search_input = document.getElementsByClassName("search-input")[0];
 
     if (search_input) {
         search_input.onfocus = function() {
-            if (search_input.value !== "") {
-                addClass(document.getElementById("main"), "hidden");
-                removeClass(document.getElementById("search"), "hidden");
-                if (browserSupportsHistoryApi()) {
-                    history.replaceState(search_input.value,
-                                         "",
-                                         "?search=" + encodeURIComponent(search_input.value));
-                }
-            }
+            putBackSearch(this);
         };
     }