From dc56d6fcec4d07e93b15f6d08fa0d8c78200e9e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E6=B8=85=E4=BA=91?= Date: Fri, 12 Sep 2025 15:50:53 +0800 Subject: [PATCH] =?UTF-8?q?=E9=BC=A0=E6=A0=87=E4=BA=8B=E4=BB=B6=E6=94=B6?= =?UTF-8?q?=E5=88=B0leave-window=E6=97=B6=E5=B0=86mouseTestResults=5F?= =?UTF-8?q?=E6=B8=85=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 胡清云 --- frameworks/core/common/event_manager.cpp | 1 + .../core/event/event_manager_test_ng_new.cpp | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/frameworks/core/common/event_manager.cpp b/frameworks/core/common/event_manager.cpp index efdbf752133..1ba49ab3c7b 100644 --- a/frameworks/core/common/event_manager.cpp +++ b/frameworks/core/common/event_manager.cpp @@ -1546,6 +1546,7 @@ void EventManager::UpdateHoverNode(const MouseEvent& event, const TouchTestResul lastHoverTestResultsMap_[eventIdentity] = std::move(currHoverTestResultsMap_[eventIdentity]); currHoverTestResultsMap_[eventIdentity].clear(); currHoverTestResultsMap_.erase(eventIdentity); + mouseTestResults_.clear(); } else if (event.action == MouseAction::WINDOW_ENTER) { TAG_LOGD(AceLogTag::ACE_MOUSE, "EW."); lastHoverTestResultsMap_[eventIdentity].clear(); diff --git a/test/unittest/core/event/event_manager_test_ng_new.cpp b/test/unittest/core/event/event_manager_test_ng_new.cpp index f38987b17ea..a3924facb5c 100644 --- a/test/unittest/core/event/event_manager_test_ng_new.cpp +++ b/test/unittest/core/event/event_manager_test_ng_new.cpp @@ -2164,4 +2164,30 @@ HWTEST_F(EventManagerTestNg, DispatchTouchEventTest001, TestSize.Level1) eventManager->DispatchTouchEvent(event, true); EXPECT_NE(ret, !eventManager->touchTestResults_[event.id].empty()); } + +/** + * @tc.name: UpdateHoverNode001 + * @tc.desc: Test UpdateHoverNode function. + * @tc.type: FUNC + */ +HWTEST_F(EventManagerTestNg, UpdateHoverNode001, TestSize.Level1) +{ + /** + * @tc.steps: step1. Create EventManager. + * @tc.expected: eventManager is not null. + */ + auto eventManager = AceType::MakeRefPtr(); + ASSERT_NE(eventManager, nullptr); + + MouseEvent event; + event.action = MouseAction::WINDOW_LEAVE; + auto mouseEventTarget = AceType::MakeRefPtr(MOUSE, NODEID); + auto hoverEventTarget = AceType::MakeRefPtr(MOUSE, NODEID); + std::list> testResult = {AceType::MakeRefPtr(), + mouseEventTarget, hoverEventTarget}; + eventManager->mouseTestResults_[0] = testResult; + EXPECT_EQ( static_cast(eventManager->mouseTestResults_.size()), 1); + eventManager->UpdateHoverNode(event, testResult); + EXPECT_EQ( static_cast(eventManager->mouseTestResults_.size()), 0); +} } // namespace OHOS::Ace::NG \ No newline at end of file -- Gitee