From: GeoSot Date: Thu, 6 Oct 2022 08:31:38 +0000 (+0300) Subject: fix tooltip/popper disposal inconsistencies (#37235) X-Git-Tag: v5.2.3~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7e3074c16540eacea303266fdf235aecdd9cf5c3;p=thirdparty%2Fbootstrap.git fix tooltip/popper disposal inconsistencies (#37235) --- diff --git a/js/src/tooltip.js b/js/src/tooltip.js index e01f0a4ae5..70198c81bf 100644 --- a/js/src/tooltip.js +++ b/js/src/tooltip.js @@ -172,10 +172,6 @@ class Tooltip extends BaseComponent { EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler) - if (this.tip) { - this.tip.remove() - } - if (this._element.getAttribute('data-bs-original-title')) { this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title')) } @@ -202,10 +198,7 @@ class Tooltip extends BaseComponent { } // todo v6 remove this OR make it optional - if (this.tip) { - this.tip.remove() - this.tip = null - } + this._disposePopper() const tip = this._getTipElement() @@ -218,11 +211,7 @@ class Tooltip extends BaseComponent { EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED)) } - if (this._popper) { - this._popper.update() - } else { - this._popper = this._createPopper(tip) - } + this._popper = this._createPopper(tip) tip.classList.add(CLASS_NAME_SHOW) @@ -281,13 +270,11 @@ class Tooltip extends BaseComponent { } if (!this._isHovered) { - tip.remove() + this._disposePopper() } this._element.removeAttribute('aria-describedby') EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN)) - - this._disposePopper() } this._queueCallback(complete, this.tip, this._isAnimated()) @@ -612,6 +599,11 @@ class Tooltip extends BaseComponent { this._popper.destroy() this._popper = null } + + if (this.tip) { + this.tip.remove() + this.tip = null + } } // Static