From 061c14e19e767a5b41d11cd81994838e244d8487 Mon Sep 17 00:00:00 2001 From: hct95 Date: Fri, 12 Sep 2025 21:53:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=BC=A0=E6=A0=87=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: hct95 --- .../core/components_ng/base/view_abstract.cpp | 2 +- .../gestures/recognizers/pan_recognizer.cpp | 6 +++--- .../gestures/recognizers/pinch_recognizer.cpp | 1 + .../core/gestures/pinch_recognizer_test_ng.cpp | 18 ++++++++++++++++++ 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/frameworks/core/components_ng/base/view_abstract.cpp b/frameworks/core/components_ng/base/view_abstract.cpp index 5853f4bf443..bfe8c1c4a0f 100644 --- a/frameworks/core/components_ng/base/view_abstract.cpp +++ b/frameworks/core/components_ng/base/view_abstract.cpp @@ -8701,7 +8701,7 @@ std::string ViewAbstract::GetKey(FrameNode* frameNode) { std::string value; CHECK_NULL_RETURN(frameNode, value); - return value = frameNode->GetInspectorIdValue(); + return value = frameNode->GetInspectorIdValue(""); } bool ViewAbstract::GetEnabled(FrameNode* frameNode) diff --git a/frameworks/core/components_ng/gestures/recognizers/pan_recognizer.cpp b/frameworks/core/components_ng/gestures/recognizers/pan_recognizer.cpp index 4267999976d..c766dc95019 100644 --- a/frameworks/core/components_ng/gestures/recognizers/pan_recognizer.cpp +++ b/frameworks/core/components_ng/gestures/recognizers/pan_recognizer.cpp @@ -213,7 +213,7 @@ void PanRecognizer::UpdateTouchPointInVelocityTracker(const TouchEvent& touchEve windowPoint.SetY(historyEvent.GetY()); transformEvent.time = Platform::GetTouchEventOriginTimeStamp(end ? lastTouchEvent_ : event); } - NGGestureRecognizer::Transform(windowPoint, GetAttachedNode(), false, + NGGestureRecognizer::TransformForRecognizer(windowPoint, GetAttachedNode(), false, isPostEventResult_, event.postEventNodeId); transformEvent.x = windowPoint.GetX(); @@ -517,8 +517,8 @@ void PanRecognizer::UpdateAxisDeltaTransform(const AxisEvent& event) } else if (event.sourceTool == SourceTool::TOUCHPAD) { PointF originPoint(lastAxisEvent_.horizontalAxis, lastAxisEvent_.verticalAxis); PointF finalPoint(originPoint.GetX() + delta_.GetX(), originPoint.GetY() + delta_.GetY()); - NGGestureRecognizer::Transform(originPoint, GetAttachedNode(), false, false, -1); - NGGestureRecognizer::Transform(finalPoint, GetAttachedNode(), false, false, -1); + NGGestureRecognizer::TransformForRecognizer(originPoint, GetAttachedNode(), false, false, -1); + NGGestureRecognizer::TransformForRecognizer(finalPoint, GetAttachedNode(), false, false, -1); delta_ = Offset(finalPoint.GetX(), finalPoint.GetY()) - Offset(originPoint.GetX(), originPoint.GetY()); } } diff --git a/frameworks/core/components_ng/gestures/recognizers/pinch_recognizer.cpp b/frameworks/core/components_ng/gestures/recognizers/pinch_recognizer.cpp index 031ba7affa0..f29a69e6950 100644 --- a/frameworks/core/components_ng/gestures/recognizers/pinch_recognizer.cpp +++ b/frameworks/core/components_ng/gestures/recognizers/pinch_recognizer.cpp @@ -528,6 +528,7 @@ GestureJudgeResult PinchRecognizer::TriggerGestureJudgeCallback() info->SetRawInputEvent(lastPointEvent_); info->SetRawInputDeviceId(deviceId_); if (inputEventType_ == InputEventType::AXIS) { + info->SetPinchAxisScale(lastAxisEvent_.pinchAxisScale); info->SetPressedKeyCodes(lastAxisEvent_.pressedCodes); info->SetTargetDisplayId(lastAxisEvent_.targetDisplayId); } else { diff --git a/test/unittest/core/gestures/pinch_recognizer_test_ng.cpp b/test/unittest/core/gestures/pinch_recognizer_test_ng.cpp index d73837bfe6b..1a350b76a35 100644 --- a/test/unittest/core/gestures/pinch_recognizer_test_ng.cpp +++ b/test/unittest/core/gestures/pinch_recognizer_test_ng.cpp @@ -2372,5 +2372,23 @@ HWTEST_F(PinchRecognizerTestNg, GetGestureEventInfoTest001, TestSize.Level1) pinchRecognizerPtr->inputEventType_ = InputEventType::TOUCH_SCREEN; pinchRecognizerPtr->GetGestureEventInfo(info); EXPECT_EQ(info.GetSourceTool(), SourceTool::PEN); + + double resultPinchScale = 0.0f; + pinchRecognizerPtr->inputEventType_ = InputEventType::AXIS; + GestureRecognizerJudgeFunc judgeFunc1; + judgeFunc1 = [&resultPinchScale](const std::shared_ptr& info, + const RefPtr& current, + const std::list>& others) -> GestureJudgeResult { + auto pinchGestureEvent = AceType::DynamicCast(info); + if (pinchGestureEvent) { + resultPinchScale = info->SetPinchAxisScale(); + } + return GestureJudgeResult::CONTINUE; + }; + RefPtr targetComponent = AceType::MakeRefPtr(); + targetComponent->SetOnGestureRecognizerJudgeBegin(std::move(judgeFunc1)); + pinchRecognizerPtr->SetTargetComponent(targetComponent); + pinchRecognizerPtr->TriggerGestureJudgeCallback(); + EXPECT_EQ(resultPinchScale, axisEvent.pinchAxisScale); } } // namespace OHOS::Ace::NG \ No newline at end of file -- Gitee