From d9aad2ab26eeba7162d08d36526fe1213d37ca7e Mon Sep 17 00:00:00 2001 From: Rafal Walczyna Date: Mon, 26 Apr 2021 11:57:32 +0200 Subject: [PATCH 1/2] Add multi touch support for Tizen embedder Tested on TM1 device Signed-off-by: Rafal Walczyna --- shell/platform/tizen/touch_event_handler.cc | 13 +++++++++---- shell/platform/tizen/touch_event_handler.h | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/shell/platform/tizen/touch_event_handler.cc b/shell/platform/tizen/touch_event_handler.cc index 117cd9a209b84..e770cd2d046b0 100644 --- a/shell/platform/tizen/touch_event_handler.cc +++ b/shell/platform/tizen/touch_event_handler.cc @@ -33,7 +33,8 @@ void TouchEventHandler::SendFlutterPointerEvent(FlutterPointerPhase phase, double x, double y, double scroll_delta_x, double scroll_delta_y, - size_t timestamp) { + size_t timestamp, + int multi_touch_device = 0) { if (!engine_->flutter_engine) { return; } @@ -66,6 +67,7 @@ void TouchEventHandler::SendFlutterPointerEvent(FlutterPointerPhase phase, event.scroll_delta_x = scroll_delta_x; event.scroll_delta_y = scroll_delta_y; event.timestamp = timestamp * 1000; + event.device = multi_touch_device; FlutterEngineSendPointerEvent(engine_->flutter_engine, &event, 1); } @@ -76,17 +78,20 @@ Eina_Bool TouchEventHandler::OnTouch(void *data, int type, void *event) { self->pointer_state_ = true; auto *button_event = reinterpret_cast(event); self->SendFlutterPointerEvent(kDown, button_event->x, button_event->y, 0, 0, - button_event->timestamp); + button_event->timestamp, + button_event->multi.device); } else if (type == ECORE_EVENT_MOUSE_BUTTON_UP) { self->pointer_state_ = false; auto *button_event = reinterpret_cast(event); self->SendFlutterPointerEvent(kUp, button_event->x, button_event->y, 0, 0, - button_event->timestamp); + button_event->timestamp, + button_event->multi.device); } else if (type == ECORE_EVENT_MOUSE_MOVE) { if (self->pointer_state_) { auto *move_event = reinterpret_cast(event); self->SendFlutterPointerEvent(kMove, move_event->x, move_event->y, 0, 0, - move_event->timestamp); + move_event->timestamp, + move_event->multi.device); } } else if (type == ECORE_EVENT_MOUSE_WHEEL) { auto *wheel_event = reinterpret_cast(event); diff --git a/shell/platform/tizen/touch_event_handler.h b/shell/platform/tizen/touch_event_handler.h index 37853676442e4..77585a1ac9c7d 100644 --- a/shell/platform/tizen/touch_event_handler.h +++ b/shell/platform/tizen/touch_event_handler.h @@ -27,7 +27,7 @@ class TouchEventHandler { void SendFlutterPointerEvent(FlutterPointerPhase phase, double x, double y, double scroll_delta_x, double scroll_delta_y, - size_t timestamp); + size_t timestamp, int multi_touch_device); static Eina_Bool OnTouch(void* data, int type, void* event); }; From d5e02b504a8b6b62ba4bd5b343e728cd11153280 Mon Sep 17 00:00:00 2001 From: Rafal Walczyna Date: Mon, 26 Apr 2021 13:57:25 +0200 Subject: [PATCH 2/2] Rename multi_touch_device to device_id Signed-off-by: Rafal Walczyna --- shell/platform/tizen/touch_event_handler.cc | 4 ++-- shell/platform/tizen/touch_event_handler.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/shell/platform/tizen/touch_event_handler.cc b/shell/platform/tizen/touch_event_handler.cc index e770cd2d046b0..ec25c57dd44a2 100644 --- a/shell/platform/tizen/touch_event_handler.cc +++ b/shell/platform/tizen/touch_event_handler.cc @@ -34,7 +34,7 @@ void TouchEventHandler::SendFlutterPointerEvent(FlutterPointerPhase phase, double scroll_delta_x, double scroll_delta_y, size_t timestamp, - int multi_touch_device = 0) { + int device_id = 0) { if (!engine_->flutter_engine) { return; } @@ -67,7 +67,7 @@ void TouchEventHandler::SendFlutterPointerEvent(FlutterPointerPhase phase, event.scroll_delta_x = scroll_delta_x; event.scroll_delta_y = scroll_delta_y; event.timestamp = timestamp * 1000; - event.device = multi_touch_device; + event.device = device_id; FlutterEngineSendPointerEvent(engine_->flutter_engine, &event, 1); } diff --git a/shell/platform/tizen/touch_event_handler.h b/shell/platform/tizen/touch_event_handler.h index 77585a1ac9c7d..688ad80bb5a27 100644 --- a/shell/platform/tizen/touch_event_handler.h +++ b/shell/platform/tizen/touch_event_handler.h @@ -27,7 +27,7 @@ class TouchEventHandler { void SendFlutterPointerEvent(FlutterPointerPhase phase, double x, double y, double scroll_delta_x, double scroll_delta_y, - size_t timestamp, int multi_touch_device); + size_t timestamp, int device_id); static Eina_Bool OnTouch(void* data, int type, void* event); };