From fb941b3bf8f4502bc50a22bd3960829ebecc5ecf Mon Sep 17 00:00:00 2001 From: Vaadin Bot Date: Wed, 4 Sep 2024 13:50:47 +0200 Subject: [PATCH] fix: do not close manual tooltip on target mousedown (#7746) (#7756) Co-authored-by: Serhii Kulykov --- packages/menu-bar/src/vaadin-menu-bar-mixin.js | 2 +- packages/tooltip/src/vaadin-tooltip-mixin.js | 4 ++++ packages/tooltip/test/tooltip.common.js | 6 ++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/menu-bar/src/vaadin-menu-bar-mixin.js b/packages/menu-bar/src/vaadin-menu-bar-mixin.js index a675e8fcb0b..7bdb62b9e62 100644 --- a/packages/menu-bar/src/vaadin-menu-bar-mixin.js +++ b/packages/menu-bar/src/vaadin-menu-bar-mixin.js @@ -239,7 +239,7 @@ export const MenuBarMixin = (superClass) => }); this.addController(this._overflowController); - this.addEventListener('mousedown', () => this._hideTooltip()); + this.addEventListener('mousedown', () => this._hideTooltip(true)); this.addEventListener('mouseleave', () => this._hideTooltip()); this._subMenu.addEventListener('item-selected', this.__onItemSelected.bind(this)); diff --git a/packages/tooltip/src/vaadin-tooltip-mixin.js b/packages/tooltip/src/vaadin-tooltip-mixin.js index 4c9ad202a8c..ed0a6fe98ff 100644 --- a/packages/tooltip/src/vaadin-tooltip-mixin.js +++ b/packages/tooltip/src/vaadin-tooltip-mixin.js @@ -653,6 +653,10 @@ export const TooltipMixin = (superClass) => /** @private */ __onMouseDown() { + if (this.manual) { + return; + } + this._stateController.close(true); } diff --git a/packages/tooltip/test/tooltip.common.js b/packages/tooltip/test/tooltip.common.js index b9b5e837853..c3b1f902438 100644 --- a/packages/tooltip/test/tooltip.common.js +++ b/packages/tooltip/test/tooltip.common.js @@ -799,6 +799,12 @@ describe('vaadin-tooltip', () => { expect(overlay.opened).to.be.true; }); + it('should not close overlay on target mousedown', () => { + tooltip.opened = true; + mousedown(target); + expect(overlay.opened).to.be.true; + }); + it('should close overlay when opened is set to false', () => { tooltip.opened = true;