Skip to content

Commit d6767c7

Browse files
committed
Bug 1714846 - Really hide panels on hide, r=robwu,emilio
Differential Revision: https://phabricator.services.mozilla.com/D132574
1 parent 84ce7c5 commit d6767c7

File tree

5 files changed

+13
-10
lines changed

5 files changed

+13
-10
lines changed

browser/base/content/appmenu-viewcache.inc.xhtml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -406,6 +406,7 @@
406406
<panelview id="PanelUI-savetopocket"
407407
flex="1" class="PanelUI-subView"
408408
remote="true"
409+
neverhidden="true"
409410
closemenu="none">
410411
<vbox class="PanelUI-savetopocket-container">
411412
</vbox>

browser/components/customizableui/content/panelUI.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -463,6 +463,9 @@ const PanelUI = {
463463
let tempPanel = document.createXULElement("panel");
464464
tempPanel.setAttribute("type", "arrow");
465465
tempPanel.setAttribute("id", "customizationui-widget-panel");
466+
if (viewNode.hasAttribute("neverhidden")) {
467+
tempPanel.setAttribute("neverhidden", "true");
468+
}
466469

467470
tempPanel.setAttribute("class", "cui-widget-panel panel-no-padding");
468471
tempPanel.setAttribute("viewId", aViewId);

browser/components/extensions/ExtensionPopups.jsm

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -495,6 +495,7 @@ class PanelPopup extends BasePopup {
495495
if (extension.remote) {
496496
panel.setAttribute("remote", "true");
497497
}
498+
panel.setAttribute("neverhidden", "true");
498499

499500
document.getElementById("mainPopupSet").appendChild(panel);
500501

@@ -550,6 +551,7 @@ class ViewPopup extends BasePopup {
550551
if (remote) {
551552
panel.setAttribute("remote", "true");
552553
}
554+
panel.setAttribute("neverhidden", "true");
553555

554556
document.getElementById("mainPopupSet").appendChild(panel);
555557
return panel;

browser/components/extensions/parent/ext-browserAction.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,7 @@ this.browserAction = class extends ExtensionAPI {
212212
view.id = this.viewId;
213213
view.setAttribute("flex", "1");
214214
view.setAttribute("extension", true);
215+
view.setAttribute("neverhidden", true);
215216

216217
document.getElementById("appMenu-viewCache").appendChild(view);
217218

toolkit/content/widgets/panel.js

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
{
1010
class MozPanel extends MozElements.MozElementMixin(XULPopupElement) {
1111
static get markup() {
12-
return `<html:slot part="content" style="display: none"/>`;
12+
return `<html:slot part="content" style="display: none !important"/>`;
1313
}
1414
constructor() {
1515
super();
@@ -59,13 +59,9 @@
5959

6060
this.attachShadow({ mode: "open" });
6161

62-
if (!this.isArrowPanel) {
63-
let slot = document.createElement("slot");
64-
slot.part = "content";
65-
slot.style.display = "none";
66-
this.shadowRoot.appendChild(slot);
67-
} else {
68-
this.shadowRoot.appendChild(this.constructor.fragment);
62+
this.shadowRoot.appendChild(this.constructor.fragment);
63+
if (this.hasAttribute("neverhidden")) {
64+
this.panelContent.style.display = "";
6965
}
7066
}
7167

@@ -214,8 +210,8 @@
214210
}
215211

216212
on_popuphidden(event) {
217-
if (event.target == this) {
218-
this.panelContent.style.display = "none";
213+
if (event.target == this && !this.hasAttribute("neverhidden")) {
214+
this.panelContent.style.setProperty("display", "none", "important");
219215
}
220216
if (this.isArrowPanel && event.target == this) {
221217
this.removeAttribute("panelopen");

0 commit comments

Comments
 (0)