From 8a22335d366c6a113c5acadc971b4b495c89a0ee Mon Sep 17 00:00:00 2001 From: wwyang <137208480@qq.com> Date: Mon, 25 Dec 2023 15:46:27 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=A4=9A=E6=8C=87=E8=A7=A6?= =?UTF-8?q?=E6=91=B8=E5=BC=82=E5=B8=B8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wwyang <137208408@qq.com> --- shell/platform/ohos/ohos_touch_processor.cpp | 40 +++++++++----------- 1 file changed, 17 insertions(+), 23 deletions(-) diff --git a/shell/platform/ohos/ohos_touch_processor.cpp b/shell/platform/ohos/ohos_touch_processor.cpp index 47f8a838ff..5abd00deca 100644 --- a/shell/platform/ohos/ohos_touch_processor.cpp +++ b/shell/platform/ohos/ohos_touch_processor.cpp @@ -65,37 +65,33 @@ void OhosTouchProcessor::HandleTouchEvent( int64_t shell_holderID, OH_NativeXComponent* component, OH_NativeXComponent_TouchEvent* touchEvent) { - if (touchEvent == nullptr) { - LOGE("touchEvent Invalid"); - return; - } - auto packet = - std::make_unique(touchEvent->numPoints); - for (size_t index = 0; index < touchEvent->numPoints; ++index) { + if (touchEvent == nullptr) { + return; + } + const int numPoints = 1; + auto packet = std::make_unique(numPoints); PointerData pointerData; pointerData.Clear(); pointerData.embedder_id = touchEvent->id; - pointerData.time_stamp = - touchEvent->touchPoints[index].timeStamp / MSEC_PER_SECOND; - pointerData.change = - getPointerChangeForAction(touchEvent->touchPoints[index].type); - pointerData.physical_y = touchEvent->touchPoints[index].y; - pointerData.physical_x = touchEvent->touchPoints[index].x; + pointerData.time_stamp = touchEvent->timeStamp / MSEC_PER_SECOND; + pointerData.change = getPointerChangeForAction(touchEvent->type); + pointerData.physical_y = touchEvent->y; + pointerData.physical_x = touchEvent->x; // Delta will be generated in pointer_data_packet_converter.cc. pointerData.physical_delta_x = 0.0; pointerData.physical_delta_y = 0.0; - pointerData.device = touchEvent->touchPoints[index].id; + pointerData.device = touchEvent->id; // Pointer identifier will be generated in pointer_data_packet_converter.cc. pointerData.pointer_identifier = 0; // XComponent not support Scroll pointerData.signal_kind = PointerData::SignalKind::kNone; pointerData.scroll_delta_x = 0.0; pointerData.scroll_delta_y = 0.0; - pointerData.pressure = touchEvent->touchPoints[index].force; + pointerData.pressure = touchEvent->force; pointerData.pressure_max = 1.0; pointerData.pressure_min = 0.0; OH_NativeXComponent_TouchPointToolType toolType; - OH_NativeXComponent_GetTouchPointToolType(component, index, &toolType); + OH_NativeXComponent_GetTouchPointToolType(component, 0, &toolType); pointerData.kind = getPointerDeviceTypeForToolType(toolType); if (pointerData.kind == PointerData::DeviceKind::kTouch) { if (pointerData.change == PointerData::Change::kDown || @@ -103,7 +99,6 @@ void OhosTouchProcessor::HandleTouchEvent( pointerData.buttons = kPointerButtonTouchContact; } } else if (pointerData.kind == PointerData::DeviceKind::kMouse) { - // TODO:button获取鼠标EventButton } pointerData.pan_x = 0.0; pointerData.pan_y = 0.0; @@ -111,14 +106,13 @@ void OhosTouchProcessor::HandleTouchEvent( pointerData.pan_delta_x = 0.0; pointerData.pan_delta_y = 0.0; // The contact area between the fingerpad and the screen - pointerData.size = touchEvent->touchPoints[index].size; + pointerData.size = touchEvent->size; pointerData.scale = 1.0; pointerData.rotation = 0.0; - packet->SetPointerData(index, pointerData); - } - auto ohos_shell_holder = reinterpret_cast(shell_holderID); - ohos_shell_holder->GetPlatformView()->DispatchPointerDataPacket( - std::move(packet)); + packet->SetPointerData(0, pointerData); + auto ohos_shell_holder = reinterpret_cast(shell_holderID); + ohos_shell_holder->GetPlatformView()->DispatchPointerDataPacket( + std::move(packet)); } } // namespace flutter \ No newline at end of file -- Gitee