Skip to content

Commit

Permalink
Add support for movementX/Y in SyntheticMouseEvent
Browse files Browse the repository at this point in the history
Register screenX/Y after calculating values

Fix movementY variable name error

Linting fix
  • Loading branch information
Brandon Dail authored and Brandon Dail committed May 8, 2016
1 parent 9ddf9e1 commit 9949404
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 0 deletions.
15 changes: 15 additions & 0 deletions src/renderers/dom/client/syntheticEvents/SyntheticMouseEvent.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

var SyntheticUIEvent = require('SyntheticUIEvent');
var ViewportMetrics = require('ViewportMetrics');
var MouseMetrics = require('MouseMetrics');

var getEventModifierState = require('getEventModifierState');

Expand Down Expand Up @@ -63,6 +64,20 @@ var MouseEventInterface = {
event.pageY :
event.clientY + ViewportMetrics.currentScrollTop;
},
movementX: function(event) {
const movementX = 'movementX' in event ?
event.movementX :
event.screenX - MouseMetrics.previousScreenX;
MouseMetrics.setPreviousScreenX(event.screenX);
return movementX;
},
movementY: function(event) {
const movementY = 'movementY' in event ?
event.movementY :
event.screenY - MouseMetrics.previousScreenY;
MouseMetrics.setPreviousScreenY(event.screenY);
return movementY;
},
};

/**
Expand Down
30 changes: 30 additions & 0 deletions src/renderers/dom/client/utils/MouseMetrics.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/**
* Copyright 2013-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*
* @providesModule MouseMetrics
*/

'use strict';

var MouseMetrics = {

previousScreenX: 0,

previousScreenY: 0,

setPreviousScreenX: function(value) {
MouseMetrics.previousScreenX = value;
},

setPreviousScreenY: function(value) {
MouseMetrics.previousScreenY = value;
},

};

module.exports = MouseMetrics;

0 comments on commit 9949404

Please sign in to comment.