@@ -33,7 +33,8 @@ void TouchEventHandler::SendFlutterPointerEvent(FlutterPointerPhase phase,
3333 double x, double y,
3434 double scroll_delta_x,
3535 double scroll_delta_y,
36- size_t timestamp) {
36+ size_t timestamp,
37+ int device_id = 0 ) {
3738 if (!engine_->flutter_engine ) {
3839 return ;
3940 }
@@ -66,6 +67,7 @@ void TouchEventHandler::SendFlutterPointerEvent(FlutterPointerPhase phase,
6667 event.scroll_delta_x = scroll_delta_x * 2 ;
6768 event.scroll_delta_y = scroll_delta_y * 2 ;
6869 event.timestamp = timestamp * 1000 ;
70+ event.device = device_id;
6971 FlutterEngineSendPointerEvent (engine_->flutter_engine , &event, 1 );
7072}
7173
@@ -76,17 +78,20 @@ Eina_Bool TouchEventHandler::OnTouch(void *data, int type, void *event) {
7678 self->pointer_state_ = true ;
7779 auto *button_event = reinterpret_cast <Ecore_Event_Mouse_Button *>(event);
7880 self->SendFlutterPointerEvent (kDown , button_event->x , button_event->y , 0 , 0 ,
79- button_event->timestamp );
81+ button_event->timestamp ,
82+ button_event->multi .device );
8083 } else if (type == ECORE_EVENT_MOUSE_BUTTON_UP) {
8184 self->pointer_state_ = false ;
8285 auto *button_event = reinterpret_cast <Ecore_Event_Mouse_Button *>(event);
8386 self->SendFlutterPointerEvent (kUp , button_event->x , button_event->y , 0 , 0 ,
84- button_event->timestamp );
87+ button_event->timestamp ,
88+ button_event->multi .device );
8589 } else if (type == ECORE_EVENT_MOUSE_MOVE) {
8690 if (self->pointer_state_ ) {
8791 auto *move_event = reinterpret_cast <Ecore_Event_Mouse_Move *>(event);
8892 self->SendFlutterPointerEvent (kMove , move_event->x , move_event->y , 0 , 0 ,
89- move_event->timestamp );
93+ move_event->timestamp ,
94+ move_event->multi .device );
9095 }
9196 } else if (type == ECORE_EVENT_MOUSE_WHEEL) {
9297 auto *wheel_event = reinterpret_cast <Ecore_Event_Mouse_Wheel *>(event);
0 commit comments