File tree Expand file tree Collapse file tree 3 files changed +16
-4
lines changed Expand file tree Collapse file tree 3 files changed +16
-4
lines changed Original file line number Diff line number Diff line change @@ -251,13 +251,13 @@ $.each( [
251251 wrappers = menu . find ( "li.ui-menu-item .ui-menu-item-wrapper" ) ;
252252
253253 button . trigger ( "click" ) ;
254- wrappers . first ( ) . simulate ( "mouseover" ) . trigger ( "click" ) ;
254+ wrappers . first ( ) . simulate ( "mouseover" , { clientX : 2 , clientY : 2 } ) . trigger ( "click" ) ;
255255 assert . equal ( element [ 0 ] . selectedIndex , 0 , "First item is selected" ) ;
256256 button . simulate ( "keydown" , { keyCode : $ . ui . keyCode . UP } ) ;
257257 assert . equal ( element [ 0 ] . selectedIndex , 0 , "No looping beyond first item" ) ;
258258
259259 button . trigger ( "click" ) ;
260- wrappers . last ( ) . simulate ( "mouseover" ) . trigger ( "click" ) ;
260+ wrappers . last ( ) . simulate ( "mouseover" , { clientX : 3 , clientY : 3 } ) . trigger ( "click" ) ;
261261 assert . equal ( element [ 0 ] . selectedIndex , wrappers . length - 1 , "Last item is selected" ) ;
262262 button . simulate ( "keydown" , { keyCode : $ . ui . keyCode . DOWN } ) ;
263263 assert . equal ( element [ 0 ] . selectedIndex , wrappers . length - 1 , "No looping behind last item" ) ;
Original file line number Diff line number Diff line change @@ -89,9 +89,9 @@ QUnit.test( "focus", function( assert ) {
8989 button . trigger ( "click" ) ;
9090 links = menu . find ( "li.ui-menu-item" ) ;
9191 optionIndex = 0 ;
92- links . eq ( optionIndex ) . simulate ( "mouseover" ) ;
92+ links . eq ( optionIndex ) . simulate ( "mouseover" , { clientX : 2 , clientY : 2 } ) ;
9393 optionIndex += 1 ;
94- links . eq ( optionIndex ) . simulate ( "mouseover" ) ;
94+ links . eq ( optionIndex ) . simulate ( "mouseover" , { clientX : 3 , clientY : 3 } ) ;
9595
9696 // This tests for unwanted, additional focus event on close
9797 that . element . selectmenu ( "close" ) ;
Original file line number Diff line number Diff line change @@ -64,6 +64,7 @@ return $.widget( "ui.menu", {
6464 // Flag used to prevent firing of the click handler
6565 // as the event bubbles up through nested menus
6666 this . mouseHandled = false ;
67+ this . lastMousePosition = { x : null , y : null } ;
6768 this . element
6869 . uniqueId ( )
6970 . attr ( {
@@ -161,6 +162,17 @@ return $.widget( "ui.menu", {
161162 return ;
162163 }
163164
165+ // If the mouse didn't actually move, but the page was scrolled, ignore the event (#9356)
166+ if ( event . clientX === this . lastMousePosition . x &&
167+ event . clientY === this . lastMousePosition . y ) {
168+ return ;
169+ }
170+
171+ this . lastMousePosition = {
172+ x : event . clientX ,
173+ y : event . clientY
174+ } ;
175+
164176 var actualTarget = $ ( event . target ) . closest ( ".ui-menu-item" ) ,
165177 target = $ ( event . currentTarget ) ;
166178
You can’t perform that action at this time.
0 commit comments