From a05de404d8459752a34bf65297df5ac780bac554 Mon Sep 17 00:00:00 2001 From: Dave Methvin Date: Wed, 14 Jan 2015 14:34:09 -0500 Subject: [PATCH] Event: HTML5 drop events inherit from MouseEvent Fixes gh-2009 Ref gh-1925 (cherry picked from commit d7e5fcee519e5f3e840beef9e67a536e75133df9) Conflicts: test/unit/event.js --- src/event.js | 2 +- test/unit/event.js | 19 ++++++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/event.js b/src/event.js index eb9dd8fc8..f19a7fa1b 100644 --- a/src/event.js +++ b/src/event.js @@ -12,7 +12,7 @@ define([ var rformElems = /^(?:input|select|textarea)$/i, rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu|drag)|click/, + rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, rtypenamespace = /^([^.]*)(?:\.(.+)|)/; diff --git a/test/unit/event.js b/test/unit/event.js index 8992a0b95..3854a2133 100644 --- a/test/unit/event.js +++ b/test/unit/event.js @@ -2481,21 +2481,26 @@ test("fixHooks extensions", function() { // this test in IE8 since a native HTML5 drag event will never occur there. if ( document.createEvent ) { - test( "drag events copy over mouse related event properties (gh-1925)", function() { - expect( 2 ); + test( "drag/drop events copy mouse-related event properties (gh-1925, gh-2009)", function() { + expect( 4 ); var $fixture = jQuery( "
" ).appendTo( "body" ); $fixture.on( "dragmove", function( evt ) { - ok( "pageX" in evt, "checking for pageX property" ); - ok( "pageY" in evt, "checking for pageY property" ); + ok( "pageX" in evt, "checking for pageX property on dragmove" ); + ok( "pageY" in evt, "checking for pageY property on dragmove" ); }); - fireNative( $fixture[ 0 ], "dragmove" ); - $fixture.unbind( "dragmove" ).remove(); + + $fixture.on( "drop", function( evt ) { + ok( "pageX" in evt, "checking for pageX property on drop" ); + ok( "pageY" in evt, "checking for pageY property on drop" ); + }); + fireNative( $fixture[ 0 ], "drop" ); + + $fixture.unbind( "dragmove drop" ).remove(); }); } - test( "focusin using non-element targets", function() { expect( 2 );