File tree 3 files changed +16
-4
lines changed
3 files changed +16
-4
lines changed Original file line number Diff line number Diff line change @@ -251,13 +251,13 @@ $.each( [
251
251
wrappers = menu . find ( "li.ui-menu-item .ui-menu-item-wrapper" ) ;
252
252
253
253
button . trigger ( "click" ) ;
254
- wrappers . first ( ) . simulate ( "mouseover" ) . trigger ( "click" ) ;
254
+ wrappers . first ( ) . simulate ( "mouseover" , { clientX : 2 , clientY : 2 } ) . trigger ( "click" ) ;
255
255
assert . equal ( element [ 0 ] . selectedIndex , 0 , "First item is selected" ) ;
256
256
button . simulate ( "keydown" , { keyCode : $ . ui . keyCode . UP } ) ;
257
257
assert . equal ( element [ 0 ] . selectedIndex , 0 , "No looping beyond first item" ) ;
258
258
259
259
button . trigger ( "click" ) ;
260
- wrappers . last ( ) . simulate ( "mouseover" ) . trigger ( "click" ) ;
260
+ wrappers . last ( ) . simulate ( "mouseover" , { clientX : 3 , clientY : 3 } ) . trigger ( "click" ) ;
261
261
assert . equal ( element [ 0 ] . selectedIndex , wrappers . length - 1 , "Last item is selected" ) ;
262
262
button . simulate ( "keydown" , { keyCode : $ . ui . keyCode . DOWN } ) ;
263
263
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 ) {
89
89
button . trigger ( "click" ) ;
90
90
links = menu . find ( "li.ui-menu-item" ) ;
91
91
optionIndex = 0 ;
92
- links . eq ( optionIndex ) . simulate ( "mouseover" ) ;
92
+ links . eq ( optionIndex ) . simulate ( "mouseover" , { clientX : 2 , clientY : 2 } ) ;
93
93
optionIndex += 1 ;
94
- links . eq ( optionIndex ) . simulate ( "mouseover" ) ;
94
+ links . eq ( optionIndex ) . simulate ( "mouseover" , { clientX : 3 , clientY : 3 } ) ;
95
95
96
96
// This tests for unwanted, additional focus event on close
97
97
that . element . selectmenu ( "close" ) ;
Original file line number Diff line number Diff line change @@ -64,6 +64,7 @@ return $.widget( "ui.menu", {
64
64
// Flag used to prevent firing of the click handler
65
65
// as the event bubbles up through nested menus
66
66
this . mouseHandled = false ;
67
+ this . lastMousePosition = { x : null , y : null } ;
67
68
this . element
68
69
. uniqueId ( )
69
70
. attr ( {
@@ -161,6 +162,17 @@ return $.widget( "ui.menu", {
161
162
return ;
162
163
}
163
164
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
+
164
176
var actualTarget = $ ( event . target ) . closest ( ".ui-menu-item" ) ,
165
177
target = $ ( event . currentTarget ) ;
166
178
You can’t perform that action at this time.
0 commit comments