@@ -1185,6 +1185,28 @@ void testMain() {
1185
1185
wheelDeltaY: - 360 ,
1186
1186
));
1187
1187
1188
+ glassPane.dispatchEvent (context.wheel (
1189
+ buttons: 0 ,
1190
+ clientX: 10 ,
1191
+ clientY: 10 ,
1192
+ deltaX: 119 ,
1193
+ deltaY: 119 ,
1194
+ wheelDeltaX: - 357 ,
1195
+ wheelDeltaY: - 357 ,
1196
+ timeStamp: 10 ,
1197
+ ));
1198
+
1199
+ glassPane.dispatchEvent (context.wheel (
1200
+ buttons: 0 ,
1201
+ clientX: 10 ,
1202
+ clientY: 10 ,
1203
+ deltaX: - 120 ,
1204
+ deltaY: - 120 ,
1205
+ wheelDeltaX: 360 ,
1206
+ wheelDeltaY: 360 ,
1207
+ timeStamp: 20 ,
1208
+ ));
1209
+
1188
1210
glassPane.dispatchEvent (context.wheel (
1189
1211
buttons: 0 ,
1190
1212
clientX: 10 ,
@@ -1205,7 +1227,7 @@ void testMain() {
1205
1227
wheelDeltaY: - 360 ,
1206
1228
));
1207
1229
1208
- expect (packets, hasLength (4 ));
1230
+ expect (packets, hasLength (6 ));
1209
1231
1210
1232
// An add will be synthesized.
1211
1233
expect (packets[0 ].data, hasLength (2 ));
@@ -1248,39 +1270,72 @@ void testMain() {
1248
1270
expect (packets[1 ].data[0 ].scrollDeltaX, equals (120.0 ));
1249
1271
expect (packets[1 ].data[0 ].scrollDeltaY, equals (120.0 ));
1250
1272
1251
- // Because the delta is in increments of 120, and is not similar to
1252
- // the previous event, it will be a mouse event.
1253
- expect (packets[2 ].data, hasLength (1 ));
1273
+ // Because the delta is not in increments of 120 and has matching wheelDelta,
1274
+ // it will be a trackpad event.
1254
1275
expect (packets[2 ].data[0 ].change, equals (ui.PointerChange .hover));
1255
1276
expect (
1256
1277
packets[2 ].data[0 ].signalKind, equals (ui.PointerSignalKind .scroll));
1257
1278
expect (
1258
- packets[2 ].data[0 ].kind, equals (ui.PointerDeviceKind .mouse ));
1279
+ packets[2 ].data[0 ].kind, equals (ui.PointerDeviceKind .trackpad ));
1259
1280
expect (packets[2 ].data[0 ].pointerIdentifier, equals (0 ));
1260
1281
expect (packets[2 ].data[0 ].synthesized, isFalse);
1261
1282
expect (packets[2 ].data[0 ].physicalX, equals (10.0 * dpi));
1262
1283
expect (packets[2 ].data[0 ].physicalY, equals (10.0 * dpi));
1263
1284
expect (packets[2 ].data[0 ].physicalDeltaX, equals (0.0 ));
1264
1285
expect (packets[2 ].data[0 ].physicalDeltaY, equals (0.0 ));
1265
- expect (packets[2 ].data[0 ].scrollDeltaX, equals (0 .0 ));
1266
- expect (packets[2 ].data[0 ].scrollDeltaY, equals (- 120 .0 ));
1286
+ expect (packets[2 ].data[0 ].scrollDeltaX, equals (119 .0 ));
1287
+ expect (packets[2 ].data[0 ].scrollDeltaY, equals (119 .0 ));
1267
1288
1268
- // Because the delta is not in increments of 120 and has non-matching
1269
- // wheelDelta, it will be a mouse event.
1270
- expect (packets[ 3 ].data, hasLength ( 1 ));
1289
+ // Because the delta is in increments of 120, and is not similar to the
1290
+ // previous event, but occured soon after the previous event, it will be
1291
+ // a trackpad event.
1271
1292
expect (packets[3 ].data[0 ].change, equals (ui.PointerChange .hover));
1272
1293
expect (
1273
1294
packets[3 ].data[0 ].signalKind, equals (ui.PointerSignalKind .scroll));
1274
1295
expect (
1275
- packets[3 ].data[0 ].kind, equals (ui.PointerDeviceKind .mouse ));
1296
+ packets[3 ].data[0 ].kind, equals (ui.PointerDeviceKind .trackpad ));
1276
1297
expect (packets[3 ].data[0 ].pointerIdentifier, equals (0 ));
1277
1298
expect (packets[3 ].data[0 ].synthesized, isFalse);
1278
1299
expect (packets[3 ].data[0 ].physicalX, equals (10.0 * dpi));
1279
1300
expect (packets[3 ].data[0 ].physicalY, equals (10.0 * dpi));
1280
1301
expect (packets[3 ].data[0 ].physicalDeltaX, equals (0.0 ));
1281
1302
expect (packets[3 ].data[0 ].physicalDeltaY, equals (0.0 ));
1282
- expect (packets[3 ].data[0 ].scrollDeltaX, equals (0.0 ));
1283
- expect (packets[3 ].data[0 ].scrollDeltaY, equals (40.0 ));
1303
+ expect (packets[3 ].data[0 ].scrollDeltaX, equals (- 120.0 ));
1304
+ expect (packets[3 ].data[0 ].scrollDeltaY, equals (- 120.0 ));
1305
+
1306
+ // Because the delta is in increments of 120, and is not similar to
1307
+ // the previous event, and does not have a timestamp, it will be a mouse event.
1308
+ expect (packets[4 ].data, hasLength (1 ));
1309
+ expect (packets[4 ].data[0 ].change, equals (ui.PointerChange .hover));
1310
+ expect (
1311
+ packets[4 ].data[0 ].signalKind, equals (ui.PointerSignalKind .scroll));
1312
+ expect (
1313
+ packets[4 ].data[0 ].kind, equals (ui.PointerDeviceKind .mouse));
1314
+ expect (packets[4 ].data[0 ].pointerIdentifier, equals (0 ));
1315
+ expect (packets[4 ].data[0 ].synthesized, isFalse);
1316
+ expect (packets[4 ].data[0 ].physicalX, equals (10.0 * dpi));
1317
+ expect (packets[4 ].data[0 ].physicalY, equals (10.0 * dpi));
1318
+ expect (packets[4 ].data[0 ].physicalDeltaX, equals (0.0 ));
1319
+ expect (packets[4 ].data[0 ].physicalDeltaY, equals (0.0 ));
1320
+ expect (packets[4 ].data[0 ].scrollDeltaX, equals (0.0 ));
1321
+ expect (packets[4 ].data[0 ].scrollDeltaY, equals (- 120.0 ));
1322
+
1323
+ // Because the delta is not in increments of 120 and has non-matching
1324
+ // wheelDelta, it will be a mouse event.
1325
+ expect (packets[5 ].data, hasLength (1 ));
1326
+ expect (packets[5 ].data[0 ].change, equals (ui.PointerChange .hover));
1327
+ expect (
1328
+ packets[5 ].data[0 ].signalKind, equals (ui.PointerSignalKind .scroll));
1329
+ expect (
1330
+ packets[5 ].data[0 ].kind, equals (ui.PointerDeviceKind .mouse));
1331
+ expect (packets[5 ].data[0 ].pointerIdentifier, equals (0 ));
1332
+ expect (packets[5 ].data[0 ].synthesized, isFalse);
1333
+ expect (packets[5 ].data[0 ].physicalX, equals (10.0 * dpi));
1334
+ expect (packets[5 ].data[0 ].physicalY, equals (10.0 * dpi));
1335
+ expect (packets[5 ].data[0 ].physicalDeltaX, equals (0.0 ));
1336
+ expect (packets[5 ].data[0 ].physicalDeltaY, equals (0.0 ));
1337
+ expect (packets[5 ].data[0 ].scrollDeltaX, equals (0.0 ));
1338
+ expect (packets[5 ].data[0 ].scrollDeltaY, equals (40.0 ));
1284
1339
},
1285
1340
);
1286
1341
@@ -2993,6 +3048,7 @@ mixin _ButtonedEventMixin on _BasicEventContext {
2993
3048
required double ? deltaY,
2994
3049
double ? wheelDeltaX,
2995
3050
double ? wheelDeltaY,
3051
+ int ? timeStamp,
2996
3052
}) {
2997
3053
final Function jsWheelEvent = js_util.getProperty <Function >(domWindow, 'WheelEvent' );
2998
3054
final List <dynamic > eventArgs = < dynamic > [
@@ -3005,6 +3061,7 @@ mixin _ButtonedEventMixin on _BasicEventContext {
3005
3061
'deltaY' : deltaY,
3006
3062
'wheelDeltaX' : wheelDeltaX,
3007
3063
'wheelDeltaY' : wheelDeltaY,
3064
+ 'timeStamp' : timeStamp,
3008
3065
}
3009
3066
];
3010
3067
return js_util.callConstructor <DomEvent >(
0 commit comments