Skip to content

Commit

Permalink
setting a flag, so that the first movement will have the correct value (
Browse files Browse the repository at this point in the history
  • Loading branch information
jasonwilliams authored and gaearon committed Jun 20, 2018
1 parent b0f6089 commit 5b3d17a
Showing 1 changed file with 19 additions and 4 deletions.
23 changes: 19 additions & 4 deletions packages/react-dom/src/events/SyntheticMouseEvent.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,11 @@
import SyntheticUIEvent from './SyntheticUIEvent';
import getEventModifierState from './getEventModifierState';

let previousScreenX = null;
let previousScreenY = null;
let previousScreenX = 0;
let previousScreenY = 0;
// Use flags to signal movementX/Y has already been set
let isMovementXSet = false;
let isMovementYSet = false;

/**
* @interface MouseEvent
Expand Down Expand Up @@ -44,7 +47,13 @@ const SyntheticMouseEvent = SyntheticUIEvent.extend({

const screenX = previousScreenX;
previousScreenX = event.screenX;
return screenX ? event.screenX - screenX : 0;

if (!isMovementXSet) {
isMovementXSet = true;
return 0;
}

return event.screenX - screenX;
},
movementY: function(event) {
if ('movementY' in event) {
Expand All @@ -53,7 +62,13 @@ const SyntheticMouseEvent = SyntheticUIEvent.extend({

const screenY = previousScreenY;
previousScreenY = event.screenY;
return screenY ? event.screenY - screenY : 0;

if (!isMovementYSet) {
isMovementYSet = true;
return 0;
}

return event.screenY - screenY;
},
});

Expand Down

0 comments on commit 5b3d17a

Please sign in to comment.