tListener("mousemove", this); }, handleEvent(event) { switch (event.type) { case "popupshown": AutoHideMenubar._node.removeEventListener("mousemove", this); break; case "popuphiding": case "mousemove": AutoHideMenubar._setInactiveAsync(); AutoHideMenubar._node.removeEventListener("mousemove", this); this.contextMenu.removeEventListener("popuphiding", this); this.contextMenu.removeEventListener("popupshown", this); this.contextMenu = null; break; } }, }, init() { this._node.addEventListener("toolbarvisibilitychange", this); if (this._node.hasAttribute("autohide")) { this._enable(); } }, _updateState() { if (this._node.hasAttribute("autohide")) { this._enable(); } else { this._disable(); } }, _events: [ "DOMMenuBarInactive", "DOMMenuBarActive", "popupshowing", "mousedown", ], _enable() { this._node.setAttribute("inactive", "true"); for (let event of this._events) { this._node.addEventListener(event, this); } }, _disable() { this._setActive(); for (let event of this._events) { this._node.removeEventListener(event, this); } }, handleEvent(event) { switch (event.type) { case "toolbarvisibilitychange": this._updateState(); break; case "popupshowing": // fall through case "DOMMenuBarActive": this._setActive(); break; case "mousedown": if (event.button == 2) { this._contextMenuListener.init(event); } break; case "DOMMenuBarInactive": if (!this._contextMenuListener.active) { this._setInactiveAsync(); } break; } }, _setInactiveAsync() { this._inactiveTimeout = setTimeout(() => { if (this._node.hasAttribute("autohide")) { this._inactiveTimeout = null; this._node.setAttribute("inactive", "true"); } }, 0); }, _setActive() { if (this._inactiveTimeout) { clearTimeout(this._inactiveTimeout); this._inactiveTimeout = null; } this._node.removeAttribute("inactive"); }, }; PK