Skip to content

Commit b098215

Browse files
Luna Weifacebook-github-bot
authored andcommitted
PointerEvents: Fix x/y coordinate system for PointerEvents, set some properties for "mouse" pointerType
Summary: Changelog: [Internal] - Fix more pointer event platform tests. * Fix the coordinate system to use DIP * Set some properties for when pointerType="mouse" Reviewed By: vincentriemer Differential Revision: D39184713 fbshipit-source-id: d86f798f3e0a377ff1c159fb308329a2c9ae03ff
1 parent 64ae12e commit b098215

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEvent.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -172,17 +172,18 @@ private WritableMap createPointerEventData(int index) {
172172
// https://www.w3.org/TR/pointerevents/#pointerevent-interface
173173
pointerEvent.putDouble("pointerId", pointerId);
174174
pointerEvent.putDouble("pressure", mMotionEvent.getPressure(index));
175-
pointerEvent.putString(
176-
"pointerType", PointerEventHelper.getW3CPointerType(mMotionEvent.getToolType(index)));
175+
176+
String pointerType = PointerEventHelper.getW3CPointerType(mMotionEvent.getToolType(index));
177+
pointerEvent.putString("pointerType", pointerType);
177178

178179
pointerEvent.putBoolean(
179180
"isPrimary", PointerEventHelper.isPrimary(pointerId, mPrimaryPointerId, mMotionEvent));
180181

181182
// https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent
182183
// Client refers to upper left edge of the content area (viewport)
183184
// We define the viewport to be ReactRootView
184-
double clientX = mMotionEvent.getX(index);
185-
double clientY = mMotionEvent.getX(index);
185+
double clientX = PixelUtil.toDIPFromPixel(mMotionEvent.getX(index));
186+
double clientY = PixelUtil.toDIPFromPixel(mMotionEvent.getY(index));
186187
pointerEvent.putDouble("clientX", clientX);
187188
pointerEvent.putDouble("clientY", clientY);
188189

@@ -201,6 +202,13 @@ private WritableMap createPointerEventData(int index) {
201202
pointerEvent.putInt("target", this.getViewTag());
202203
pointerEvent.putDouble("timestamp", this.getTimestampMs());
203204

205+
if (pointerType.equals(PointerEventHelper.POINTER_TYPE_MOUSE)) {
206+
pointerEvent.putDouble("width", 1);
207+
pointerEvent.putDouble("height", 1);
208+
pointerEvent.putDouble("tiltX", 0);
209+
pointerEvent.putDouble("tiltY", 0);
210+
}
211+
204212
return pointerEvent;
205213
}
206214

0 commit comments

Comments
 (0)