File tree Expand file tree Collapse file tree 2 files changed +22
-1
lines changed Expand file tree Collapse file tree 2 files changed +22
-1
lines changed Original file line number Diff line number Diff line change @@ -14,7 +14,7 @@ import {
14
14
import sinon from 'sinon' ;
15
15
import '@vaadin/menu-bar' ;
16
16
import { Tooltip } from '@vaadin/tooltip' ;
17
- import { mouseleave } from '@vaadin/tooltip/test/helpers.js' ;
17
+ import { mouseenter , mouseleave } from '@vaadin/tooltip/test/helpers.js' ;
18
18
19
19
export function mouseover ( target ) {
20
20
fire ( target , 'mouseover' ) ;
@@ -129,6 +129,14 @@ describe('menu-bar with tooltip', () => {
129
129
expect ( tooltip . opened ) . to . be . false ;
130
130
} ) ;
131
131
132
+ it ( 'should hide tooltip on mouseleave from overlay to outside' , ( ) => {
133
+ const overlay = tooltip . _overlayElement ;
134
+ mouseover ( buttons [ 0 ] ) ;
135
+ mouseenter ( overlay ) ;
136
+ mouseleave ( overlay ) ;
137
+ expect ( overlay . opened ) . to . be . false ;
138
+ } ) ;
139
+
132
140
it ( 'should not show tooltip on focus without keyboard interaction' , async ( ) => {
133
141
buttons [ 0 ] . focus ( ) ;
134
142
await nextRender ( ) ;
Original file line number Diff line number Diff line change @@ -179,6 +179,7 @@ export const MenuBarMixin = (superClass) =>
179
179
constructor ( ) {
180
180
super ( ) ;
181
181
this . __boundOnContextMenuKeydown = this . __onContextMenuKeydown . bind ( this ) ;
182
+ this . __boundOnTooltipMouseLeave = this . __onTooltipOverlayMouseLeave . bind ( this ) ;
182
183
}
183
184
184
185
/**
@@ -624,6 +625,11 @@ export const MenuBarMixin = (superClass) =>
624
625
tooltip . generator = ( { item } ) => item && item . tooltip ;
625
626
}
626
627
628
+ if ( ! tooltip . _mouseLeaveListenerAdded ) {
629
+ tooltip . _overlayElement . addEventListener ( 'mouseleave' , this . __boundOnTooltipMouseLeave ) ;
630
+ tooltip . _mouseLeaveListenerAdded = true ;
631
+ }
632
+
627
633
if ( ! this . _subMenu . opened ) {
628
634
this . _tooltipController . setTarget ( button ) ;
629
635
this . _tooltipController . setContext ( { item : button . item } ) ;
@@ -645,6 +651,13 @@ export const MenuBarMixin = (superClass) =>
645
651
}
646
652
}
647
653
654
+ /** @private */
655
+ __onTooltipOverlayMouseLeave ( event ) {
656
+ if ( event . relatedTarget !== this . _tooltipController . target ) {
657
+ this . _hideTooltip ( ) ;
658
+ }
659
+ }
660
+
648
661
/** @protected */
649
662
_setExpanded ( button , expanded ) {
650
663
button . toggleAttribute ( 'expanded' , expanded ) ;
You can’t perform that action at this time.
0 commit comments