21 std::vector<FlutterPointerEvent> pointer_events;
24 ([&pointer_events](
auto engine,
const FlutterPointerEvent* events,
25 size_t events_count) {
26 for (
size_t i = 0;
i < events_count;
i++) {
27 pointer_events.push_back(events[
i]);
35 GdkDevice* touchscreen =
36 GDK_DEVICE(g_object_new(gdk_wayland_device_get_type(),
"input-source",
37 GDK_SOURCE_TOUCHSCREEN,
nullptr));
38 GdkEventTouch*
event =
39 reinterpret_cast<GdkEventTouch*
>(gdk_event_new(GDK_TOUCH_BEGIN));
43 event->device = touchscreen;
45 EXPECT_EQ(pointer_events.size(), 2u);
46 EXPECT_EQ(pointer_events[0].
x, 4.0);
47 EXPECT_EQ(pointer_events[0].
y, 8.0);
48 EXPECT_EQ(pointer_events[0].device_kind, kFlutterPointerDeviceKindTouch);
49 EXPECT_EQ(pointer_events[0].timestamp,
51 EXPECT_EQ(pointer_events[0].phase, kAdd);
53 EXPECT_EQ(pointer_events[1].
x, 4.0);
54 EXPECT_EQ(pointer_events[1].
y, 8.0);
55 EXPECT_EQ(pointer_events[1].device_kind, kFlutterPointerDeviceKindTouch);
56 EXPECT_EQ(pointer_events[1].timestamp,
58 EXPECT_EQ(pointer_events[1].phase, kDown);
60 event->type = GDK_TOUCH_UPDATE;
62 EXPECT_EQ(pointer_events.size(), 3u);
63 EXPECT_EQ(pointer_events[2].
x, 4.0);
64 EXPECT_EQ(pointer_events[2].
y, 8.0);
65 EXPECT_EQ(pointer_events[2].device_kind, kFlutterPointerDeviceKindTouch);
66 EXPECT_EQ(pointer_events[2].timestamp,
68 EXPECT_EQ(pointer_events[2].phase, kMove);
70 event->type = GDK_TOUCH_END;
72 EXPECT_EQ(pointer_events.size(), 5u);
73 EXPECT_EQ(pointer_events[3].
x, 4.0);
74 EXPECT_EQ(pointer_events[3].
y, 8.0);
75 EXPECT_EQ(pointer_events[3].device_kind, kFlutterPointerDeviceKindTouch);
76 EXPECT_EQ(pointer_events[3].timestamp,
78 EXPECT_EQ(pointer_events[3].phase, kUp);
80 EXPECT_EQ(pointer_events[4].
x, 4.0);
81 EXPECT_EQ(pointer_events[4].
y, 8.0);
82 EXPECT_EQ(pointer_events[4].device_kind, kFlutterPointerDeviceKindTouch);
83 EXPECT_EQ(pointer_events[4].timestamp,
85 EXPECT_EQ(pointer_events[4].phase, kRemove);
g_autoptr(FlEngine) engine
FlFramebuffer double double y
FlutterEngineProcTable * fl_engine_get_embedder_api(FlEngine *self)
void fl_touch_manager_handle_touch_event(FlTouchManager *self, GdkEventTouch *touch_event, gint scale_factor)
FlTouchManager * fl_touch_manager_new(FlEngine *engine, FlutterViewId view_id)