Bug 1367349 - Remove all tooltips after clicking on a preferences category. draft
authorEvan Tseng <evan@tseng.io>
Fri, 26 May 2017 15:16:54 +0800
changeset 588064 3b09424137a6e5e79b7a74fbb524c23e700acca3
parent 588052 aeb3d0ca558f034cbef1c5a68bd07dd738611494
child 631448 70a0155160e4c2c6237ed5cd6b92382ad1fffcac
push id61895
push userbmo:evan@tseng.io
push dateFri, 02 Jun 2017 03:26:45 +0000
bugs1367349
milestone55.0a1
Bug 1367349 - Remove all tooltips after clicking on a preferences category. MozReview-Commit-ID: 5qO7oOKH0LM
browser/components/preferences/in-content-new/findInPage.js
browser/components/preferences/in-content-new/preferences.js
--- a/browser/components/preferences/in-content-new/findInPage.js
+++ b/browser/components/preferences/in-content-new/findInPage.js
@@ -187,24 +187,17 @@ var gSearchResultsPane = {
    * Shows or hides content according to search input
    *
    * @param String event
    *    to search for filted query in
    */
   searchFunction(event) {
     let query = event.target.value.trim().toLowerCase();
     this.findSelection.removeAllRanges();
-
-    // Remove all search tooltips that were created
-    let searchTooltips = Array.from(document.querySelectorAll(".search-tooltip"));
-    for (let searchTooltip of searchTooltips) {
-      searchTooltip.parentElement.classList.remove("search-tooltip-parent");
-      searchTooltip.remove();
-    }
-    this.listSearchTooltips = [];
+    this.removeAllSearchTooltips();
 
     let srHeader = document.getElementById("header-searchResults");
 
     if (query) {
       // Showing the Search Results Tag
       gotoPref("paneSearchResults");
 
       this.searchResultsCategory.hidden = false;
@@ -365,10 +358,22 @@ var gSearchResultsPane = {
     let tooltipRect = searchTooltip.getBoundingClientRect();
     let parentRect = currentNode.parentElement.getBoundingClientRect();
 
     let offSet = (anchorRect.width / 2) - (tooltipRect.width / 2);
     let relativeOffset = anchorRect.left - parentRect.left;
     offSet += relativeOffset > 0 ? relativeOffset : 0;
 
     searchTooltip.style.setProperty("left", `${offSet}px`);
+  },
+
+  /**
+   * Remove all search tooltips that were created.
+   */
+  removeAllSearchTooltips() {
+    let searchTooltips = Array.from(document.querySelectorAll(".search-tooltip"));
+    for (let searchTooltip of searchTooltips) {
+      searchTooltip.parentElement.classList.remove("search-tooltip-parent");
+      searchTooltip.remove();
+    }
+    this.listSearchTooltips = [];
   }
 }
--- a/browser/components/preferences/in-content-new/preferences.js
+++ b/browser/components/preferences/in-content-new/preferences.js
@@ -161,16 +161,17 @@ function gotoPref(aCategory) {
   if (subcategory) {
     category = category.substring(0, breakIndex);
   }
   category = friendlyPrefCategoryNameToInternalName(category);
   if (category != "paneSearchResults") {
     gSearchResultsPane.searchInput.value = "";
     gSearchResultsPane.searchResultsCategory.hidden = true;
     gSearchResultsPane.findSelection.removeAllRanges();
+    gSearchResultsPane.removeAllSearchTooltips();
   }
 
   // Updating the hash (below) or changing the selected category
   // will re-enter gotoPref.
   if (gLastHash == category && !subcategory)
     return;
   let item = categories.querySelector(".category[value=" + category + "]");
   if (!item) {