Bug 1378794 - Dispatch the 'ViewHide' event on the correct, current panelview when a temporary panel is destroyed. r?Gijs draft
authorMike de Boer <mdeboer@mozilla.com>
Thu, 06 Jul 2017 18:47:59 +0200
changeset 604894 336b499217b230e00fcad701aa6c7fd0382ecaf3
parent 604893 147d944290c6c76eedd11eb13377b31fc52f9a6a
child 636320 c5b3e48997e013e84138af44329531931f7c5c8c
push id67219
push usermdeboer@mozilla.com
push dateThu, 06 Jul 2017 16:52:04 +0000
reviewersGijs
bugs1378794
milestone56.0a1
Bug 1378794 - Dispatch the 'ViewHide' event on the correct, current panelview when a temporary panel is destroyed. r?Gijs MozReview-Commit-ID: HXjGJJGChUz
browser/components/customizableui/content/panelUI.js
--- a/browser/components/customizableui/content/panelUI.js
+++ b/browser/components/customizableui/content/panelUI.js
@@ -529,18 +529,19 @@ const PanelUI = {
 
       let viewShown = false;
       let panelRemover = () => {
         viewNode.classList.remove("cui-widget-panelview");
         if (viewShown) {
           CustomizableUI.removePanelCloseListeners(tempPanel);
           tempPanel.removeEventListener("popuphidden", panelRemover);
 
-          let evt = new CustomEvent("ViewHiding", {detail: viewNode});
-          viewNode.dispatchEvent(evt);
+          let currentView = multiView.current || viewNode;
+          let evt = new CustomEvent("ViewHiding", {detail: currentView});
+          currentView.dispatchEvent(evt);
         }
         aAnchor.open = false;
 
         // Ensure we run the destructor:
         multiView.instance.destructor();
 
         tempPanel.remove();
       };