Bug 1392403 - Ease the dismiss of the popup in about:telemetry r?chuten
Fix ping selector popup is sometimes hard to dismiss.
MozReview-Commit-ID: KEFcmq6cvRA
--- a/toolkit/content/aboutTelemetry.js
+++ b/toolkit/content/aboutTelemetry.js
@@ -316,29 +316,39 @@ var PingPicker = {
});
document.getElementById("newer-ping")
.addEventListener("click", () => this._movePingIndex(-1));
document.getElementById("older-ping")
.addEventListener("click", () => this._movePingIndex(1));
+ let pingPickerNeedHide = false;
+ let pingPicker = document.getElementById("ping-picker");
+ pingPicker.addEventListener("mouseenter", () => pingPickerNeedHide = false);
+ pingPicker.addEventListener("mouseleave", () => pingPickerNeedHide = true);
document.addEventListener("click", (ev) => {
- if (ev.target.querySelector("#ping-picker")) {
- document.getElementById("ping-picker").classList.add("hidden");
+ if (pingPickerNeedHide) {
+ pingPicker.classList.add("hidden");
}
});
document.getElementById("choose-payload")
.addEventListener("change", () => displayPingData(gPingData));
document.getElementById("processes")
.addEventListener("change", () => displayPingData(gPingData));
- Array.from(document.querySelectorAll(".change-ping")).forEach(el =>
- el.addEventListener("click", () =>
- document.getElementById("ping-picker").classList.remove("hidden"))
- );
+ Array.from(document.querySelectorAll(".change-ping")).forEach(el => {
+ el.addEventListener("click", (event) => {
+ if (!pingPicker.classList.contains("hidden")) {
+ pingPicker.classList.add("hidden");
+ } else {
+ pingPicker.classList.remove("hidden")
+ event.stopPropagation();
+ }
+ });
+ });
},
onPingSourceChanged() {
this.update();
},
onPingDisplayChanged() {
this.update();