@@ -33,7 +33,8 @@ void TouchEventHandler::SendFlutterPointerEvent(FlutterPointerPhase phase,
33
33
double x, double y,
34
34
double scroll_delta_x,
35
35
double scroll_delta_y,
36
- size_t timestamp) {
36
+ size_t timestamp,
37
+ int device_id = 0 ) {
37
38
if (!engine_->flutter_engine ) {
38
39
return ;
39
40
}
@@ -66,6 +67,7 @@ void TouchEventHandler::SendFlutterPointerEvent(FlutterPointerPhase phase,
66
67
event.scroll_delta_x = scroll_delta_x * 2 ;
67
68
event.scroll_delta_y = scroll_delta_y * 2 ;
68
69
event.timestamp = timestamp * 1000 ;
70
+ event.device = device_id;
69
71
FlutterEngineSendPointerEvent (engine_->flutter_engine , &event, 1 );
70
72
}
71
73
@@ -76,17 +78,20 @@ Eina_Bool TouchEventHandler::OnTouch(void *data, int type, void *event) {
76
78
self->pointer_state_ = true ;
77
79
auto *button_event = reinterpret_cast <Ecore_Event_Mouse_Button *>(event);
78
80
self->SendFlutterPointerEvent (kDown , button_event->x , button_event->y , 0 , 0 ,
79
- button_event->timestamp );
81
+ button_event->timestamp ,
82
+ button_event->multi .device );
80
83
} else if (type == ECORE_EVENT_MOUSE_BUTTON_UP) {
81
84
self->pointer_state_ = false ;
82
85
auto *button_event = reinterpret_cast <Ecore_Event_Mouse_Button *>(event);
83
86
self->SendFlutterPointerEvent (kUp , button_event->x , button_event->y , 0 , 0 ,
84
- button_event->timestamp );
87
+ button_event->timestamp ,
88
+ button_event->multi .device );
85
89
} else if (type == ECORE_EVENT_MOUSE_MOVE) {
86
90
if (self->pointer_state_ ) {
87
91
auto *move_event = reinterpret_cast <Ecore_Event_Mouse_Move *>(event);
88
92
self->SendFlutterPointerEvent (kMove , move_event->x , move_event->y , 0 , 0 ,
89
- move_event->timestamp );
93
+ move_event->timestamp ,
94
+ move_event->multi .device );
90
95
}
91
96
} else if (type == ECORE_EVENT_MOUSE_WHEEL) {
92
97
auto *wheel_event = reinterpret_cast <Ecore_Event_Mouse_Wheel *>(event);
0 commit comments