diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2022-11-15 01:40:46 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-11-15 01:40:46 +0100 |
| commit | 5e753ca2b28c3854cb797b580becad8d3ce264ea (patch) | |
| tree | 543abd52a0d1fe697de54504525c8d64856e08af /src | |
| parent | f17828d938525ccea16833f731f8a9c40ea8fc93 (diff) | |
| parent | 7b00534952c9d2685a960e2d501cc4eefab6c075 (diff) | |
| download | rust-5e753ca2b28c3854cb797b580becad8d3ce264ea.tar.gz rust-5e753ca2b28c3854cb797b580becad8d3ce264ea.zip | |
Rollup merge of #104415 - notriddle:notriddle/search-keyboard-commands, r=GuillaumeGomez
rustdoc: fix corner case in search keyboard commands This fixes a bug when that shows up in nightly and in stable where: * Search something * Press down: first result is highlighted * Press down: second result is highlighted * Press down: third result is highlighted * Press right: first result of second tab is highlighted * Press left: third result of first tab is highlighted * Press up: second result is highlighted * Press up: first result is highlighted * Press up: Search box is highlighted * Press down: **third result** is highlighted, where it ought to highlight the first result
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustdoc/html/static/js/search.js | 1 | ||||
| -rw-r--r-- | src/test/rustdoc-gui/search-keyboard.goml | 28 |
2 files changed, 29 insertions, 0 deletions
diff --git a/src/librustdoc/html/static/js/search.js b/src/librustdoc/html/static/js/search.js index dd0531c5e70..4999bb35994 100644 --- a/src/librustdoc/html/static/js/search.js +++ b/src/librustdoc/html/static/js/search.js @@ -1491,6 +1491,7 @@ function initSearch(rawSearchIndex) { const target = searchState.focusedByTab[searchState.currentTab] || document.querySelectorAll(".search-results.active a").item(0) || document.querySelectorAll("#titles > button").item(searchState.currentTab); + searchState.focusedByTab[searchState.currentTab] = null; if (target) { target.focus(); } diff --git a/src/test/rustdoc-gui/search-keyboard.goml b/src/test/rustdoc-gui/search-keyboard.goml new file mode 100644 index 00000000000..be642fc4997 --- /dev/null +++ b/src/test/rustdoc-gui/search-keyboard.goml @@ -0,0 +1,28 @@ +// Checks that the search tab results work correctly with function signature syntax +// First, try a search-by-name +goto: "file://" + |DOC_PATH| + "/test_docs/index.html" +write: (".search-input", "Foo") +// To be SURE that the search will be run. +press-key: 'Enter' +// Waiting for the search results to appear... +wait-for: "#titles" + +// Now use the keyboard commands to switch to the third result. +press-key: "ArrowDown" +press-key: "ArrowDown" +press-key: "ArrowDown" +assert: ".search-results.active > a:focus:nth-of-type(3)" + +// Now switch to the second tab, then back to the first one, then arrow back up. +press-key: "ArrowRight" +assert: ".search-results.active:nth-of-type(2) > a:focus:nth-of-type(1)" +press-key: "ArrowLeft" +assert: ".search-results.active:nth-of-type(1) > a:focus:nth-of-type(3)" +press-key: "ArrowUp" +assert: ".search-results.active > a:focus:nth-of-type(2)" +press-key: "ArrowUp" +assert: ".search-results.active > a:focus:nth-of-type(1)" +press-key: "ArrowUp" +assert: ".search-input:focus" +press-key: "ArrowDown" +assert: ".search-results.active > a:focus:nth-of-type(1)" |
