@samitouri / QOS-React / commits / 5b3d17a5f7

setting a flag, so that the first movement will have the correct value (#13082)

Jason Williams committed Jun 20, 2018 at 22:48 UTC 5b3d17a5f729eb204371ad1953a07ec3ae3dae00
1 file changed +19 -4
packages/react-dom/src/events/SyntheticMouseEvent.js
+19 -4
@@ -8,8 +8,11 @@
8 import SyntheticUIEvent from './SyntheticUIEvent';
9 import getEventModifierState from './getEventModifierState';
10
11 -let previousScreenX = null;
12 -let previousScreenY = null;
11 +let previousScreenX = 0;
12 +let previousScreenY = 0;
13 +// Use flags to signal movementX/Y has already been set
14 +let isMovementXSet = false;
15 +let isMovementYSet = false;
16
17 /**
18 * @interface MouseEvent
@@ -44,7 +47,13 @@ const SyntheticMouseEvent = SyntheticUIEvent.extend({
47
48 const screenX = previousScreenX;
49 previousScreenX = event.screenX;
47 - return screenX ? event.screenX - screenX : 0;
50 +
51 + if (!isMovementXSet) {
52 + isMovementXSet = true;
53 + return 0;
54 + }
55 +
56 + return event.screenX - screenX;
57 },
58 movementY: function(event) {
59 if ('movementY' in event) {
@@ -53,7 +62,13 @@ const SyntheticMouseEvent = SyntheticUIEvent.extend({
62
63 const screenY = previousScreenY;
64 previousScreenY = event.screenY;
56 - return screenY ? event.screenY - screenY : 0;
65 +
66 + if (!isMovementYSet) {
67 + isMovementYSet = true;
68 + return 0;
69 + }
70 +
71 + return event.screenY - screenY;
72 },
73 });
74