about summary refs log tree commit diff
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume1.gomez@gmail.com>2021-03-05 16:16:03 +0100
committerGuillaume Gomez <guillaume1.gomez@gmail.com>2021-03-05 16:26:30 +0100
commit5dea1f188849e35aee866120958eaf3a2e196a47 (patch)
tree1746ecf7a71dfe1783839773bcc5f69420b83072
parent3ab4f9a204b130f7372e38ac7f79491478e544fb (diff)
downloadrust-5dea1f188849e35aee866120958eaf3a2e196a47.tar.gz
rust-5dea1f188849e35aee866120958eaf3a2e196a47.zip
Clean up code around theme elements
-rw-r--r--src/librustdoc/html/static/main.js30
1 files changed, 19 insertions, 11 deletions
diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js
index 5abcf4aec39..aef86998f0d 100644
--- a/src/librustdoc/html/static/main.js
+++ b/src/librustdoc/html/static/main.js
@@ -1,3 +1,4 @@
+// ignore-tidy-filelength
 // Local js definitions:
 /* global addClass, getSettingValue, hasClass */
 /* global onEach, onEachLazy, hasOwnProperty, removeClass, updateLocalStorage */
@@ -84,12 +85,20 @@ function getSearchElement() {
     return document.getElementById("search");
 }
 
+function getThemesElementId() {
+    return "theme-choices";
+}
+
 function getThemesElement() {
-    return document.getElementById("theme-choices");
+    return document.getElementById(getThemesElementId());
+}
+
+function getThemePickerElementId() {
+    return "theme-picker";
 }
 
 function getThemePickerElement() {
-    return document.getElementById("theme-picker");
+    return document.getElementById(getThemePickerElementId());
 }
 
 // Returns the current URL without any query parameter or hash.
@@ -143,11 +152,11 @@ function hideThemeButtonState() {
         var active = document.activeElement;
         var related = e.relatedTarget;
 
-        if (active.id !== "theme-picker" &&
-            (!active.parentNode || active.parentNode.id !== "theme-choices") &&
+        if (active.id !== getThemePickerElementId() &&
+            (!active.parentNode || active.parentNode.id !== getThemesElementId()) &&
             (!related ||
-             (related.id !== "theme-picker" &&
-              (!related.parentNode || related.parentNode.id !== "theme-choices")))) {
+             (related.id !== getThemePickerElementId() &&
+              (!related.parentNode || related.parentNode.id !== getThemesElementId())))) {
             hideThemeButtonState();
         }
     }
@@ -512,8 +521,7 @@ function hideThemeButtonState() {
                 break;
 
             default:
-                var themePicker = getThemePickerElement();
-                if (themePicker.parentNode.contains(ev.target)) {
+                if (getThemePickerElement().parentNode.contains(ev.target)) {
                     handleThemeKeyDown(ev);
                 }
             }
@@ -526,7 +534,7 @@ function hideThemeButtonState() {
         switch (getVirtualKey(ev)) {
         case "ArrowUp":
             ev.preventDefault();
-            if (active.previousElementSibling && ev.target.id !== "theme-picker") {
+            if (active.previousElementSibling && ev.target.id !== getThemePickerElementId()) {
                 active.previousElementSibling.focus();
             } else {
                 showThemeButtonState();
@@ -535,7 +543,7 @@ function hideThemeButtonState() {
             break;
         case "ArrowDown":
             ev.preventDefault();
-            if (active.nextElementSibling && ev.target.id !== "theme-picker") {
+            if (active.nextElementSibling && ev.target.id !== getThemePickerElementId()) {
                 active.nextElementSibling.focus();
             } else {
                 showThemeButtonState();
@@ -545,7 +553,7 @@ function hideThemeButtonState() {
         case "Enter":
         case "Return":
         case "Space":
-            if (ev.target.id === "theme-picker" && themes.style.display === "none") {
+            if (ev.target.id === getThemePickerElementId() && themes.style.display === "none") {
                 ev.preventDefault();
                 showThemeButtonState();
                 themes.firstElementChild.focus();