1
Fork 0

Rollup merge of #63782 - GuillaumeGomez:theme-switch-fix, r=kinnison

Fix confusion in theme picker functions

To reproduce the bug currently: click on the theme picker button twice (to show it then hide it). Then click anywhere else: the dropdown menu appears again.

The problem was coming from a confusion of what the `hideThemeButtonState` and `showThemeButtonState` were supposed to do. I switched their codes and updated the `switchThemeButtonState` function. It now works as expected.

r? @kinnison
This commit is contained in:
Mazdak Farrokhzad 2019-08-22 15:15:40 +02:00 committed by GitHub
commit 1f56441a00
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 14 deletions

View file

@ -876,22 +876,22 @@ r#"var themes = document.getElementById("theme-choices");
var themePicker = document.getElementById("theme-picker"); var themePicker = document.getElementById("theme-picker");
function showThemeButtonState() {{ function showThemeButtonState() {{
themes.style.display = "none";
themePicker.style.borderBottomRightRadius = "3px";
themePicker.style.borderBottomLeftRadius = "3px";
}}
function hideThemeButtonState() {{
themes.style.display = "block"; themes.style.display = "block";
themePicker.style.borderBottomRightRadius = "0"; themePicker.style.borderBottomRightRadius = "0";
themePicker.style.borderBottomLeftRadius = "0"; themePicker.style.borderBottomLeftRadius = "0";
}} }}
function hideThemeButtonState() {{
themes.style.display = "none";
themePicker.style.borderBottomRightRadius = "3px";
themePicker.style.borderBottomLeftRadius = "3px";
}}
function switchThemeButtonState() {{ function switchThemeButtonState() {{
if (themes.style.display === "block") {{ if (themes.style.display === "block") {{
showThemeButtonState();
}} else {{
hideThemeButtonState(); hideThemeButtonState();
}} else {{
showThemeButtonState();
}} }}
}}; }};

View file

@ -105,9 +105,9 @@ if (!DOMTokenList.prototype.remove) {
sidebar.appendChild(div); sidebar.appendChild(div);
} }
} }
var themePicker = document.getElementsByClassName("theme-picker"); var themePickers = document.getElementsByClassName("theme-picker");
if (themePicker && themePicker.length > 0) { if (themePickers && themePickers.length > 0) {
themePicker[0].style.display = "none"; themePickers[0].style.display = "none";
} }
} }
@ -123,9 +123,9 @@ if (!DOMTokenList.prototype.remove) {
filler.remove(); filler.remove();
} }
document.getElementsByTagName("body")[0].style.marginTop = ""; document.getElementsByTagName("body")[0].style.marginTop = "";
var themePicker = document.getElementsByClassName("theme-picker"); var themePickers = document.getElementsByClassName("theme-picker");
if (themePicker && themePicker.length > 0) { if (themePickers && themePickers.length > 0) {
themePicker[0].style.display = null; themePickers[0].style.display = null;
} }
} }