summaryrefslogtreecommitdiff
path: root/ext/js/dom/panel-element.js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/js/dom/panel-element.js')
-rw-r--r--ext/js/dom/panel-element.js26
1 files changed, 11 insertions, 15 deletions
diff --git a/ext/js/dom/panel-element.js b/ext/js/dom/panel-element.js
index 9c1289d7..0f2801e6 100644
--- a/ext/js/dom/panel-element.js
+++ b/ext/js/dom/panel-element.js
@@ -89,16 +89,14 @@ export class PanelElement extends EventDispatcher {
* @param {(details: import('core').EventArgument<import('panel-element').Events, TName>) => void} callback
*/
on(eventName, callback) {
- if (eventName === 'visibilityChanged') {
- if (this._mutationObserver === null) {
- this._visible = this.isVisible();
- this._mutationObserver = new MutationObserver(this._onMutation.bind(this));
- this._mutationObserver.observe(this._node, {
- attributes: true,
- attributeFilter: ['hidden'],
- attributeOldValue: true
- });
- }
+ if (eventName === 'visibilityChanged' && this._mutationObserver === null) {
+ this._visible = this.isVisible();
+ this._mutationObserver = new MutationObserver(this._onMutation.bind(this));
+ this._mutationObserver.observe(this._node, {
+ attributes: true,
+ attributeFilter: ['hidden'],
+ attributeOldValue: true
+ });
}
super.on(eventName, callback);
}
@@ -111,11 +109,9 @@ export class PanelElement extends EventDispatcher {
*/
off(eventName, callback) {
const result = super.off(eventName, callback);
- if (eventName === 'visibilityChanged' && !this.hasListeners(eventName)) {
- if (this._mutationObserver !== null) {
- this._mutationObserver.disconnect();
- this._mutationObserver = null;
- }
+ if (eventName === 'visibilityChanged' && !this.hasListeners(eventName) && this._mutationObserver !== null) {
+ this._mutationObserver.disconnect();
+ this._mutationObserver = null;
}
return result;
}