Add embedderId
to PointerEvent
(#60930)
This field is used to look-up the event in the platform that resuted a given `PointerEvent`. This is currently only used on Android, where the `embedderId` is set to be the `motionEventId` for a given `MotionEvent`. Roll engine to d0d6a4c2362d2ed478006bb3b01c34c0e96033b4
This commit is contained in:
parent
f111a823ec
commit
2ab5099436
@ -1 +1 @@
|
|||||||
f22ac9da9c78215a3caf038b2205444dc2ee3d0d
|
d0d6a4c2362d2ed478006bb3b01c34c0e96033b4
|
||||||
|
@ -219,6 +219,7 @@ class WindowManagerBodyState extends State<WindowManagerBody> {
|
|||||||
eventTime: 723657071,
|
eventTime: 723657071,
|
||||||
action: 0,
|
action: 0,
|
||||||
xPrecision: 1.0,
|
xPrecision: 1.0,
|
||||||
|
motionEventId: 1,
|
||||||
),
|
),
|
||||||
AndroidMotionEvent(
|
AndroidMotionEvent(
|
||||||
downTime: 723657071,
|
downTime: 723657071,
|
||||||
@ -252,6 +253,7 @@ class WindowManagerBodyState extends State<WindowManagerBody> {
|
|||||||
edgeFlags: 0,
|
edgeFlags: 0,
|
||||||
source: 4098,
|
source: 4098,
|
||||||
flags: 0,
|
flags: 0,
|
||||||
|
motionEventId: 2,
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -74,6 +74,7 @@ class PointerEventConverter {
|
|||||||
radiusMax: radiusMax,
|
radiusMax: radiusMax,
|
||||||
orientation: datum.orientation,
|
orientation: datum.orientation,
|
||||||
tilt: datum.tilt,
|
tilt: datum.tilt,
|
||||||
|
embedderId: datum.embedderId,
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case ui.PointerChange.hover:
|
case ui.PointerChange.hover:
|
||||||
@ -97,6 +98,7 @@ class PointerEventConverter {
|
|||||||
orientation: datum.orientation,
|
orientation: datum.orientation,
|
||||||
tilt: datum.tilt,
|
tilt: datum.tilt,
|
||||||
synthesized: datum.synthesized,
|
synthesized: datum.synthesized,
|
||||||
|
embedderId: datum.embedderId,
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case ui.PointerChange.down:
|
case ui.PointerChange.down:
|
||||||
@ -119,6 +121,7 @@ class PointerEventConverter {
|
|||||||
radiusMax: radiusMax,
|
radiusMax: radiusMax,
|
||||||
orientation: datum.orientation,
|
orientation: datum.orientation,
|
||||||
tilt: datum.tilt,
|
tilt: datum.tilt,
|
||||||
|
embedderId: datum.embedderId,
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case ui.PointerChange.move:
|
case ui.PointerChange.move:
|
||||||
@ -144,6 +147,7 @@ class PointerEventConverter {
|
|||||||
tilt: datum.tilt,
|
tilt: datum.tilt,
|
||||||
platformData: datum.platformData,
|
platformData: datum.platformData,
|
||||||
synthesized: datum.synthesized,
|
synthesized: datum.synthesized,
|
||||||
|
embedderId: datum.embedderId,
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case ui.PointerChange.up:
|
case ui.PointerChange.up:
|
||||||
@ -167,6 +171,7 @@ class PointerEventConverter {
|
|||||||
radiusMax: radiusMax,
|
radiusMax: radiusMax,
|
||||||
orientation: datum.orientation,
|
orientation: datum.orientation,
|
||||||
tilt: datum.tilt,
|
tilt: datum.tilt,
|
||||||
|
embedderId: datum.embedderId,
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case ui.PointerChange.cancel:
|
case ui.PointerChange.cancel:
|
||||||
@ -189,6 +194,7 @@ class PointerEventConverter {
|
|||||||
radiusMax: radiusMax,
|
radiusMax: radiusMax,
|
||||||
orientation: datum.orientation,
|
orientation: datum.orientation,
|
||||||
tilt: datum.tilt,
|
tilt: datum.tilt,
|
||||||
|
embedderId: datum.embedderId,
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case ui.PointerChange.remove:
|
case ui.PointerChange.remove:
|
||||||
@ -203,6 +209,7 @@ class PointerEventConverter {
|
|||||||
distanceMax: datum.distanceMax,
|
distanceMax: datum.distanceMax,
|
||||||
radiusMin: radiusMin,
|
radiusMin: radiusMin,
|
||||||
radiusMax: radiusMax,
|
radiusMax: radiusMax,
|
||||||
|
embedderId: datum.embedderId,
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -217,6 +224,7 @@ class PointerEventConverter {
|
|||||||
device: datum.device,
|
device: datum.device,
|
||||||
position: position,
|
position: position,
|
||||||
scrollDelta: scrollDelta,
|
scrollDelta: scrollDelta,
|
||||||
|
embedderId: datum.embedderId,
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case ui.PointerSignalKind.none:
|
case ui.PointerSignalKind.none:
|
||||||
|
@ -202,6 +202,7 @@ abstract class PointerEvent with Diagnosticable {
|
|||||||
/// Abstract const constructor. This constructor enables subclasses to provide
|
/// Abstract const constructor. This constructor enables subclasses to provide
|
||||||
/// const constructors so that they can be used in const expressions.
|
/// const constructors so that they can be used in const expressions.
|
||||||
const PointerEvent({
|
const PointerEvent({
|
||||||
|
this.embedderId = 0,
|
||||||
this.timeStamp = Duration.zero,
|
this.timeStamp = Duration.zero,
|
||||||
this.pointer = 0,
|
this.pointer = 0,
|
||||||
this.kind = PointerDeviceKind.touch,
|
this.kind = PointerDeviceKind.touch,
|
||||||
@ -232,6 +233,14 @@ abstract class PointerEvent with Diagnosticable {
|
|||||||
}) : localPosition = localPosition ?? position,
|
}) : localPosition = localPosition ?? position,
|
||||||
localDelta = localDelta ?? delta;
|
localDelta = localDelta ?? delta;
|
||||||
|
|
||||||
|
/// Unique identifier that ties the [PointerEvent] to the embedder event that created it.
|
||||||
|
///
|
||||||
|
/// No two pointer events can have the same [embedderId] on platforms that set it.
|
||||||
|
/// This is different from [pointer] identifier - used for hit-testing,
|
||||||
|
/// whereas [embedderId] is used to identify the platform event.
|
||||||
|
///
|
||||||
|
/// On Android this is ID of the underlying [MotionEvent](https://developer.android.com/reference/android/view/MotionEvent).
|
||||||
|
final int embedderId;
|
||||||
|
|
||||||
/// Time of event dispatch, relative to an arbitrary timeline.
|
/// Time of event dispatch, relative to an arbitrary timeline.
|
||||||
final Duration timeStamp;
|
final Duration timeStamp;
|
||||||
@ -504,6 +513,7 @@ abstract class PointerEvent with Diagnosticable {
|
|||||||
properties.add(IntProperty('platformData', platformData, defaultValue: 0, level: DiagnosticLevel.debug));
|
properties.add(IntProperty('platformData', platformData, defaultValue: 0, level: DiagnosticLevel.debug));
|
||||||
properties.add(FlagProperty('obscured', value: obscured, ifTrue: 'obscured', level: DiagnosticLevel.debug));
|
properties.add(FlagProperty('obscured', value: obscured, ifTrue: 'obscured', level: DiagnosticLevel.debug));
|
||||||
properties.add(FlagProperty('synthesized', value: synthesized, ifTrue: 'synthesized', level: DiagnosticLevel.debug));
|
properties.add(FlagProperty('synthesized', value: synthesized, ifTrue: 'synthesized', level: DiagnosticLevel.debug));
|
||||||
|
properties.add(IntProperty('embedderId', embedderId, defaultValue: 0, level: DiagnosticLevel.debug));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns a complete textual description of this event.
|
/// Returns a complete textual description of this event.
|
||||||
@ -592,6 +602,7 @@ class PointerAddedEvent extends PointerEvent {
|
|||||||
double tilt = 0.0,
|
double tilt = 0.0,
|
||||||
Matrix4 transform,
|
Matrix4 transform,
|
||||||
PointerAddedEvent original,
|
PointerAddedEvent original,
|
||||||
|
int embedderId = 0,
|
||||||
}) : super(
|
}) : super(
|
||||||
timeStamp: timeStamp,
|
timeStamp: timeStamp,
|
||||||
kind: kind,
|
kind: kind,
|
||||||
@ -610,6 +621,7 @@ class PointerAddedEvent extends PointerEvent {
|
|||||||
tilt: tilt,
|
tilt: tilt,
|
||||||
transform: transform,
|
transform: transform,
|
||||||
original: original,
|
original: original,
|
||||||
|
embedderId: embedderId,
|
||||||
);
|
);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -634,6 +646,7 @@ class PointerAddedEvent extends PointerEvent {
|
|||||||
tilt: tilt,
|
tilt: tilt,
|
||||||
transform: transform,
|
transform: transform,
|
||||||
original: original as PointerAddedEvent ?? this,
|
original: original as PointerAddedEvent ?? this,
|
||||||
|
embedderId: embedderId,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -660,6 +673,7 @@ class PointerRemovedEvent extends PointerEvent {
|
|||||||
double radiusMax = 0.0,
|
double radiusMax = 0.0,
|
||||||
Matrix4 transform,
|
Matrix4 transform,
|
||||||
PointerRemovedEvent original,
|
PointerRemovedEvent original,
|
||||||
|
int embedderId = 0,
|
||||||
}) : super(
|
}) : super(
|
||||||
timeStamp: timeStamp,
|
timeStamp: timeStamp,
|
||||||
kind: kind,
|
kind: kind,
|
||||||
@ -675,6 +689,7 @@ class PointerRemovedEvent extends PointerEvent {
|
|||||||
radiusMax: radiusMax,
|
radiusMax: radiusMax,
|
||||||
transform: transform,
|
transform: transform,
|
||||||
original: original,
|
original: original,
|
||||||
|
embedderId: embedderId,
|
||||||
);
|
);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -696,6 +711,7 @@ class PointerRemovedEvent extends PointerEvent {
|
|||||||
radiusMax: radiusMax,
|
radiusMax: radiusMax,
|
||||||
transform: transform,
|
transform: transform,
|
||||||
original: original as PointerRemovedEvent ?? this,
|
original: original as PointerRemovedEvent ?? this,
|
||||||
|
embedderId: embedderId,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -738,6 +754,7 @@ class PointerHoverEvent extends PointerEvent {
|
|||||||
bool synthesized = false,
|
bool synthesized = false,
|
||||||
Matrix4 transform,
|
Matrix4 transform,
|
||||||
PointerHoverEvent original,
|
PointerHoverEvent original,
|
||||||
|
int embedderId = 0,
|
||||||
}) : super(
|
}) : super(
|
||||||
timeStamp: timeStamp,
|
timeStamp: timeStamp,
|
||||||
kind: kind,
|
kind: kind,
|
||||||
@ -764,6 +781,7 @@ class PointerHoverEvent extends PointerEvent {
|
|||||||
synthesized: synthesized,
|
synthesized: synthesized,
|
||||||
transform: transform,
|
transform: transform,
|
||||||
original: original,
|
original: original,
|
||||||
|
embedderId: embedderId,
|
||||||
);
|
);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -801,6 +819,7 @@ class PointerHoverEvent extends PointerEvent {
|
|||||||
synthesized: synthesized,
|
synthesized: synthesized,
|
||||||
transform: transform,
|
transform: transform,
|
||||||
original: original as PointerHoverEvent ?? this,
|
original: original as PointerHoverEvent ?? this,
|
||||||
|
embedderId: embedderId,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -844,6 +863,7 @@ class PointerEnterEvent extends PointerEvent {
|
|||||||
bool synthesized = false,
|
bool synthesized = false,
|
||||||
Matrix4 transform,
|
Matrix4 transform,
|
||||||
PointerEnterEvent original,
|
PointerEnterEvent original,
|
||||||
|
int embedderId = 0,
|
||||||
}) : super(
|
}) : super(
|
||||||
timeStamp: timeStamp,
|
timeStamp: timeStamp,
|
||||||
kind: kind,
|
kind: kind,
|
||||||
@ -870,6 +890,7 @@ class PointerEnterEvent extends PointerEvent {
|
|||||||
synthesized: synthesized,
|
synthesized: synthesized,
|
||||||
transform: transform,
|
transform: transform,
|
||||||
original: original,
|
original: original,
|
||||||
|
embedderId: embedderId,
|
||||||
);
|
);
|
||||||
|
|
||||||
/// Creates an enter event from a [PointerHoverEvent].
|
/// Creates an enter event from a [PointerHoverEvent].
|
||||||
@ -947,6 +968,7 @@ class PointerEnterEvent extends PointerEvent {
|
|||||||
synthesized: synthesized,
|
synthesized: synthesized,
|
||||||
transform: transform,
|
transform: transform,
|
||||||
original: original as PointerEnterEvent ?? this,
|
original: original as PointerEnterEvent ?? this,
|
||||||
|
embedderId: embedderId,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -990,6 +1012,7 @@ class PointerExitEvent extends PointerEvent {
|
|||||||
bool synthesized = false,
|
bool synthesized = false,
|
||||||
Matrix4 transform,
|
Matrix4 transform,
|
||||||
PointerExitEvent original,
|
PointerExitEvent original,
|
||||||
|
int embedderId = 0,
|
||||||
}) : super(
|
}) : super(
|
||||||
timeStamp: timeStamp,
|
timeStamp: timeStamp,
|
||||||
kind: kind,
|
kind: kind,
|
||||||
@ -1016,6 +1039,7 @@ class PointerExitEvent extends PointerEvent {
|
|||||||
synthesized: synthesized,
|
synthesized: synthesized,
|
||||||
transform: transform,
|
transform: transform,
|
||||||
original: original,
|
original: original,
|
||||||
|
embedderId: embedderId,
|
||||||
);
|
);
|
||||||
|
|
||||||
/// Creates an exit event from a [PointerHoverEvent].
|
/// Creates an exit event from a [PointerHoverEvent].
|
||||||
@ -1093,6 +1117,7 @@ class PointerExitEvent extends PointerEvent {
|
|||||||
synthesized: synthesized,
|
synthesized: synthesized,
|
||||||
transform: transform,
|
transform: transform,
|
||||||
original: original as PointerExitEvent ?? this,
|
original: original as PointerExitEvent ?? this,
|
||||||
|
embedderId: embedderId,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1124,6 +1149,7 @@ class PointerDownEvent extends PointerEvent {
|
|||||||
double tilt = 0.0,
|
double tilt = 0.0,
|
||||||
Matrix4 transform,
|
Matrix4 transform,
|
||||||
PointerDownEvent original,
|
PointerDownEvent original,
|
||||||
|
int embedderId = 0,
|
||||||
}) : super(
|
}) : super(
|
||||||
timeStamp: timeStamp,
|
timeStamp: timeStamp,
|
||||||
pointer: pointer,
|
pointer: pointer,
|
||||||
@ -1148,6 +1174,7 @@ class PointerDownEvent extends PointerEvent {
|
|||||||
tilt: tilt,
|
tilt: tilt,
|
||||||
transform: transform,
|
transform: transform,
|
||||||
original: original,
|
original: original,
|
||||||
|
embedderId: embedderId,
|
||||||
);
|
);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -1177,6 +1204,7 @@ class PointerDownEvent extends PointerEvent {
|
|||||||
tilt: tilt,
|
tilt: tilt,
|
||||||
transform: transform,
|
transform: transform,
|
||||||
original: original as PointerDownEvent ?? this,
|
original: original as PointerDownEvent ?? this,
|
||||||
|
embedderId: embedderId,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1218,6 +1246,7 @@ class PointerMoveEvent extends PointerEvent {
|
|||||||
bool synthesized = false,
|
bool synthesized = false,
|
||||||
Matrix4 transform,
|
Matrix4 transform,
|
||||||
PointerMoveEvent original,
|
PointerMoveEvent original,
|
||||||
|
int embedderId = 0,
|
||||||
}) : super(
|
}) : super(
|
||||||
timeStamp: timeStamp,
|
timeStamp: timeStamp,
|
||||||
pointer: pointer,
|
pointer: pointer,
|
||||||
@ -1246,6 +1275,7 @@ class PointerMoveEvent extends PointerEvent {
|
|||||||
synthesized: synthesized,
|
synthesized: synthesized,
|
||||||
transform: transform,
|
transform: transform,
|
||||||
original: original,
|
original: original,
|
||||||
|
embedderId: embedderId,
|
||||||
);
|
);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -1286,6 +1316,7 @@ class PointerMoveEvent extends PointerEvent {
|
|||||||
synthesized: synthesized,
|
synthesized: synthesized,
|
||||||
transform: transform,
|
transform: transform,
|
||||||
original: original as PointerMoveEvent ?? this,
|
original: original as PointerMoveEvent ?? this,
|
||||||
|
embedderId: embedderId,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1320,6 +1351,7 @@ class PointerUpEvent extends PointerEvent {
|
|||||||
double tilt = 0.0,
|
double tilt = 0.0,
|
||||||
Matrix4 transform,
|
Matrix4 transform,
|
||||||
PointerUpEvent original,
|
PointerUpEvent original,
|
||||||
|
int embedderId = 0,
|
||||||
}) : super(
|
}) : super(
|
||||||
timeStamp: timeStamp,
|
timeStamp: timeStamp,
|
||||||
pointer: pointer,
|
pointer: pointer,
|
||||||
@ -1344,6 +1376,7 @@ class PointerUpEvent extends PointerEvent {
|
|||||||
tilt: tilt,
|
tilt: tilt,
|
||||||
transform: transform,
|
transform: transform,
|
||||||
original: original,
|
original: original,
|
||||||
|
embedderId: embedderId,
|
||||||
);
|
);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -1374,6 +1407,7 @@ class PointerUpEvent extends PointerEvent {
|
|||||||
tilt: tilt,
|
tilt: tilt,
|
||||||
transform: transform,
|
transform: transform,
|
||||||
original: original as PointerUpEvent ?? this,
|
original: original as PointerUpEvent ?? this,
|
||||||
|
embedderId: embedderId,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1395,6 +1429,7 @@ abstract class PointerSignalEvent extends PointerEvent {
|
|||||||
Offset localPosition,
|
Offset localPosition,
|
||||||
Matrix4 transform,
|
Matrix4 transform,
|
||||||
PointerSignalEvent original,
|
PointerSignalEvent original,
|
||||||
|
int embedderId = 0,
|
||||||
}) : super(
|
}) : super(
|
||||||
timeStamp: timeStamp,
|
timeStamp: timeStamp,
|
||||||
pointer: pointer,
|
pointer: pointer,
|
||||||
@ -1404,6 +1439,7 @@ abstract class PointerSignalEvent extends PointerEvent {
|
|||||||
localPosition: localPosition,
|
localPosition: localPosition,
|
||||||
transform: transform,
|
transform: transform,
|
||||||
original: original,
|
original: original,
|
||||||
|
embedderId: embedderId,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1424,6 +1460,7 @@ class PointerScrollEvent extends PointerSignalEvent {
|
|||||||
this.scrollDelta = Offset.zero,
|
this.scrollDelta = Offset.zero,
|
||||||
Matrix4 transform,
|
Matrix4 transform,
|
||||||
PointerScrollEvent original,
|
PointerScrollEvent original,
|
||||||
|
int embedderId = 0,
|
||||||
}) : assert(timeStamp != null),
|
}) : assert(timeStamp != null),
|
||||||
assert(kind != null),
|
assert(kind != null),
|
||||||
assert(device != null),
|
assert(device != null),
|
||||||
@ -1437,6 +1474,7 @@ class PointerScrollEvent extends PointerSignalEvent {
|
|||||||
localPosition: localPosition,
|
localPosition: localPosition,
|
||||||
transform: transform,
|
transform: transform,
|
||||||
original: original,
|
original: original,
|
||||||
|
embedderId: embedderId,
|
||||||
);
|
);
|
||||||
|
|
||||||
/// The amount to scroll, in logical pixels.
|
/// The amount to scroll, in logical pixels.
|
||||||
@ -1456,6 +1494,7 @@ class PointerScrollEvent extends PointerSignalEvent {
|
|||||||
scrollDelta: scrollDelta,
|
scrollDelta: scrollDelta,
|
||||||
transform: transform,
|
transform: transform,
|
||||||
original: original as PointerScrollEvent ?? this,
|
original: original as PointerScrollEvent ?? this,
|
||||||
|
embedderId: embedderId,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1493,6 +1532,7 @@ class PointerCancelEvent extends PointerEvent {
|
|||||||
double tilt = 0.0,
|
double tilt = 0.0,
|
||||||
Matrix4 transform,
|
Matrix4 transform,
|
||||||
PointerCancelEvent original,
|
PointerCancelEvent original,
|
||||||
|
int embedderId = 0,
|
||||||
}) : super(
|
}) : super(
|
||||||
timeStamp: timeStamp,
|
timeStamp: timeStamp,
|
||||||
pointer: pointer,
|
pointer: pointer,
|
||||||
@ -1517,6 +1557,7 @@ class PointerCancelEvent extends PointerEvent {
|
|||||||
tilt: tilt,
|
tilt: tilt,
|
||||||
transform: transform,
|
transform: transform,
|
||||||
original: original,
|
original: original,
|
||||||
|
embedderId: embedderId,
|
||||||
);
|
);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -1546,6 +1587,7 @@ class PointerCancelEvent extends PointerEvent {
|
|||||||
tilt: tilt,
|
tilt: tilt,
|
||||||
transform: transform,
|
transform: transform,
|
||||||
original: original as PointerCancelEvent ?? this,
|
original: original as PointerCancelEvent ?? this,
|
||||||
|
embedderId: embedderId,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -368,6 +368,7 @@ class AndroidMotionEvent {
|
|||||||
@required this.edgeFlags,
|
@required this.edgeFlags,
|
||||||
@required this.source,
|
@required this.source,
|
||||||
@required this.flags,
|
@required this.flags,
|
||||||
|
@required this.motionEventId,
|
||||||
}) : assert(downTime != null),
|
}) : assert(downTime != null),
|
||||||
assert(eventTime != null),
|
assert(eventTime != null),
|
||||||
assert(action != null),
|
assert(action != null),
|
||||||
@ -449,6 +450,9 @@ class AndroidMotionEvent {
|
|||||||
/// See Android's [MotionEvent#getFlags](https://developer.android.com/reference/android/view/MotionEvent.html#getFlags()).
|
/// See Android's [MotionEvent#getFlags](https://developer.android.com/reference/android/view/MotionEvent.html#getFlags()).
|
||||||
final int flags;
|
final int flags;
|
||||||
|
|
||||||
|
/// Used to identify this [MotionEvent](https://developer.android.com/reference/android/view/MotionEvent.html) uniquely in the Flutter Engine.
|
||||||
|
final int motionEventId;
|
||||||
|
|
||||||
List<dynamic> _asList(int viewId) {
|
List<dynamic> _asList(int viewId) {
|
||||||
return <dynamic>[
|
return <dynamic>[
|
||||||
viewId,
|
viewId,
|
||||||
@ -466,6 +470,7 @@ class AndroidMotionEvent {
|
|||||||
edgeFlags,
|
edgeFlags,
|
||||||
source,
|
source,
|
||||||
flags,
|
flags,
|
||||||
|
motionEventId,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -602,6 +607,7 @@ class _AndroidMotionEventConverter {
|
|||||||
edgeFlags: 0,
|
edgeFlags: 0,
|
||||||
source: 0,
|
source: 0,
|
||||||
flags: 0,
|
flags: 0,
|
||||||
|
motionEventId: event.embedderId,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user