diff --git a/frameworks/proxy/event_handler/include/input_manager_impl.h b/frameworks/proxy/event_handler/include/input_manager_impl.h index b3453e44a29f0d90e682678c61477868f4e3b189..2e29d9fba9b7b89b8fa5145331bbfd622f8818c7 100644 --- a/frameworks/proxy/event_handler/include/input_manager_impl.h +++ b/frameworks/proxy/event_handler/include/input_manager_impl.h @@ -99,7 +99,7 @@ public: #if defined(OHOS_BUILD_ENABLE_POINTER) || defined(OHOS_BUILD_ENABLE_TOUCH) void OnPointerEvent(std::shared_ptr pointerEvent); #endif // OHOS_BUILD_ENABLE_POINTER || OHOS_BUILD_ENABLE_TOUCH - int32_t PackDisplayData(NetPacket &pkt, DisplayGroupInfo &displayGroupInfo); + int32_t PackDisplayData(NetPacket &pkt, const DisplayGroupInfo &displayGroupInfo); int32_t AddMonitor(std::function)> monitor); int32_t AddMonitor(std::function)> monitor); @@ -251,15 +251,15 @@ public: void UnsubscribeInputActive(int32_t subscribeId); private: - int32_t PackWindowInfo(NetPacket &pkt, DisplayGroupInfo &displayGroupInfo); + int32_t PackWindowInfo(NetPacket &pkt, const DisplayGroupInfo &displayGroupInfo); int32_t PackWindowGroupInfo(NetPacket &pkt); int32_t PackDisplayInfo(NetPacket &pkt, DisplayGroupInfo &displayGroupInfo); int32_t PackUiExtentionWindowInfo(const std::vector& windowsInfo, NetPacket &pkt); void PrintWindowInfo(const std::vector &windowsInfo); void PrintForemostThreeWindowInfo(const std::vector &windowsInfo); - void PrintDisplayInfo(DisplayGroupInfo &displayGroupInfo); + void PrintDisplayInfo(const DisplayGroupInfo &displayGroupInfo); void PrintWindowGroupInfo(); - int32_t SendDisplayInfo(DisplayGroupInfo &displayGroupInfo); + int32_t SendDisplayInfo(const DisplayGroupInfo &displayGroupInfo); int32_t SendWindowInfo(); void SendWindowAreaInfo(WindowArea area, int32_t pid, int32_t windowId); bool IsValiadWindowAreas(const std::vector &windows); diff --git a/frameworks/proxy/event_handler/src/input_manager_impl.cpp b/frameworks/proxy/event_handler/src/input_manager_impl.cpp index 45fc5de695e01cbe81933067fdc13696738cf14b..230522c086a5884ad4c60f3412fb67747bc708ea 100644 --- a/frameworks/proxy/event_handler/src/input_manager_impl.cpp +++ b/frameworks/proxy/event_handler/src/input_manager_impl.cpp @@ -141,40 +141,49 @@ int32_t InputManagerImpl::UpdateDisplayInfo(const DisplayGroupInfo &displayGroup MMI_HILOGE("Failed to initialize MMI client"); return RET_ERR; } - std::lock_guard guard(mtx_); - displayGroupInfoArray_.clear(); - if (displayGroupInfo.windowsInfo.size() < MAX_WINDOW_SIZE) { - windowGroupInfo_.windowsInfo.clear(); + { + std::lock_guard guard(mtx_); + if (displayGroupInfo.windowsInfo.size() < MAX_WINDOW_SIZE) { + windowGroupInfo_.windowsInfo.clear(); + } + displayGroupInfoArray_.clear(); + displayGroupInfoArray_.emplace_back(displayGroupInfo); } - displayGroupInfo_ = displayGroupInfo; - int32_t ret = SendDisplayInfo(displayGroupInfo_); - displayGroupInfoArray_.emplace_back(displayGroupInfo_); + int32_t ret = SendDisplayInfo(displayGroupInfo); if (ret != RET_OK) { MMI_HILOGE("Failed to send display information to service"); return ret; } - PrintDisplayInfo(displayGroupInfo_); + PrintDisplayInfo(displayGroupInfo); return RET_OK; } -int32_t InputManagerImpl::UpdateDisplayInfo(const std::vector &displayGroupInfo) +int32_t InputManagerImpl::UpdateDisplayInfo(const std::vector &displayGroupInfos) { CALL_DEBUG_ENTER; if (!MMIEventHdl.InitClient()) { MMI_HILOGE("Failed to initialize MMI client"); return RET_ERR; } - std::lock_guard guard(mtx_); - displayGroupInfoArray_.clear(); - for (auto &item : displayGroupInfo) { - displayGroupInfo_ = item; - int32_t ret = SendDisplayInfo(displayGroupInfo_); - displayGroupInfoArray_.emplace_back(displayGroupInfo_); + { + std::lock_guard guard(mtx_); + displayGroupInfoArray_.clear(); + size_t cnt = 0; + for (auto &it : displayGroupInfos) { + displayGroupInfoArray_.emplace_back(it); + cnt += it.windowsInfo.size(); + } + if (cnt < MAX_WINDOW_SIZE) { + windowGroupInfo_.windowsInfo.clear(); + } + } + for (const auto &item : displayGroupInfos) { + int32_t ret = SendDisplayInfo(item); if (ret != RET_OK) { MMI_HILOGE("Failed to send display information to service"); return ret; } - PrintDisplayInfo(displayGroupInfo_); + PrintDisplayInfo(item); } return RET_OK; } @@ -658,7 +667,7 @@ void InputManagerImpl::OnPointerEvent(std::shared_ptr pointerEvent } #endif // OHOS_BUILD_ENABLE_POINTER || OHOS_BUILD_ENABLE_TOUCH -int32_t InputManagerImpl::PackDisplayData(NetPacket &pkt, DisplayGroupInfo &displayGroupInfo) +int32_t InputManagerImpl::PackDisplayData(NetPacket &pkt, const DisplayGroupInfo &displayGroupInfo) { CALL_DEBUG_ENTER; pkt << displayGroupInfo.groupId << displayGroupInfo.isMainGroup << displayGroupInfo.width << displayGroupInfo.height @@ -671,7 +680,7 @@ int32_t InputManagerImpl::PackDisplayData(NetPacket &pkt, DisplayGroupInfo &disp MMI_HILOGE("Packet write windows info failed"); return RET_ERR; } - return PackDisplayInfo(pkt, displayGroupInfo); + return PackDisplayInfo(pkt, const_cast(displayGroupInfo)); } int32_t InputManagerImpl::PackWindowGroupInfo(NetPacket &pkt) @@ -744,7 +753,7 @@ int32_t InputManagerImpl::PackUiExtentionWindowInfo(const std::vector(displayGroupInfo.windowsInfo.size()); @@ -931,7 +940,7 @@ void InputManagerImpl::PrintForemostThreeWindowInfo(const std::vectorsecond; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); bool ret = handler.CheckTwoFingerGestureAction(); EXPECT_FALSE(ret); handler.twoFingerGesture_.touches[0].x = 30; @@ -1122,7 +1127,12 @@ HWTEST_F(KeyCommandHandlerTest, KeyCommandHandlerTest_CheckTwoFingerGestureActio displayInfo.width = 150; displayInfo.height = 300; displayInfo.uniq = "default0"; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); handler.twoFingerGesture_.touches[0].y = 200; handler.twoFingerGesture_.touches[1].x = 30; bool ret = handler.CheckTwoFingerGestureAction(); @@ -1291,11 +1301,16 @@ HWTEST_F(KeyCommandHandlerTest, KeyCommandHandlerTest_ConvertVPToPX_004, TestSiz DisplayInfo displayInfo; displayInfo.dpi = -10; displayInfo.uniq = "default0"; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); int32_t ret = handler.ConvertVPToPX(vp); ASSERT_EQ(ret, 0); displayInfo.dpi = 160; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + displayGroupInfoRef.displaysInfo.push_back(displayInfo); ret = handler.ConvertVPToPX(vp); ASSERT_EQ(ret, 0); } @@ -4048,7 +4063,12 @@ HWTEST_F(KeyCommandHandlerTest, KeyCommandHandlerTest_ConvertVPToPX_002, TestSiz displayInfo.width = 4; displayInfo.height = 5; displayInfo.dpi = -1; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); ret = handler.ConvertVPToPX(vp); ASSERT_EQ(ret, 0); } @@ -4072,7 +4092,12 @@ HWTEST_F(KeyCommandHandlerTest, KeyCommandHandlerTest_ConvertVPToPX_003, TestSiz displayInfo.width = 4; displayInfo.height = 5; displayInfo.dpi = 160; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); int32_t ret = handler.ConvertVPToPX(vp); ASSERT_EQ(ret, 0); } @@ -4104,7 +4129,12 @@ HWTEST_F(KeyCommandHandlerTest, KeyCommandHandlerTest_CheckTwoFingerGestureActio displayInfo.width = 4; displayInfo.height = 5; displayInfo.dpi = -1; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); bool ret = handler.CheckTwoFingerGestureAction(); EXPECT_FALSE(ret); } @@ -4136,7 +4166,12 @@ HWTEST_F(KeyCommandHandlerTest, KeyCommandHandlerTest_CheckTwoFingerGestureActio displayInfo.width = 40; displayInfo.height = 50; displayInfo.dpi = -1; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); bool ret = handler.CheckTwoFingerGestureAction(); EXPECT_FALSE(ret); } @@ -4168,7 +4203,12 @@ HWTEST_F(KeyCommandHandlerTest, KeyCommandHandlerTest_CheckTwoFingerGestureActio displayInfo.width = 40; displayInfo.height = 50; displayInfo.dpi = -1; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); bool ret = handler.CheckTwoFingerGestureAction(); EXPECT_FALSE(ret); } @@ -5577,8 +5617,13 @@ HWTEST_F(KeyCommandHandlerTest, KeyCommandHandlerTest_HandleKnuckleGestureDownEv windowInfo.id = 0; windowInfo.windowType = WINDOW_INPUT_METHOD_TYPE; auto inputWindowsManager = std::make_shared(); - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); + displayGroupInfoRef.displaysInfo.push_back(displayInfo); IInputWindowsManager::instance_ = inputWindowsManager; ASSERT_NO_FATAL_FAILURE(handler.HandleKnuckleGestureDownEvent(touchEvent)); @@ -5613,7 +5658,12 @@ HWTEST_F(KeyCommandHandlerTest, KeyCommandHandlerTest_CheckTwoFingerGestureActio displayInfo.height = 2720; displayInfo.uniq = "default0"; auto inputWindowsManager = std::make_shared(); - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); IInputWindowsManager::instance_ = inputWindowsManager; handler.twoFingerGesture_.touches[0].x = 600; handler.twoFingerGesture_.touches[0].y = 600; @@ -5674,7 +5724,12 @@ HWTEST_F(KeyCommandHandlerTest, KeyCommandHandlerTest_ConvertVPToPX_006, TestSiz displayInfo.dpi = -1; displayInfo.uniq = "default0"; auto inputWindowsManager = std::make_shared(); - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); IInputWindowsManager::instance_ = inputWindowsManager; KeyCommandHandler handler; int32_t ret = handler.ConvertVPToPX(vp); @@ -5710,8 +5765,13 @@ HWTEST_F(KeyCommandHandlerTest, KeyCommandHandlerTest_CheckKnuckleCondition_001, windowInfo.id = 0; windowInfo.windowType = WINDOW_INPUT_METHOD_TYPE; auto inputWindowsManager = std::make_shared(); - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); + displayGroupInfoRef.displaysInfo.push_back(displayInfo); IInputWindowsManager::instance_ = inputWindowsManager; touchEvent->SetTargetDisplayId(1); @@ -5765,8 +5825,13 @@ HWTEST_F(KeyCommandHandlerTest, KeyCommandHandlerTest_CheckKnuckleCondition_002, windowInfo.id = 0; windowInfo.windowType = WINDOW_INPUT_METHOD_TYPE; auto inputWindowsManager = std::make_shared(); - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); + displayGroupInfoRef.displaysInfo.push_back(displayInfo); IInputWindowsManager::instance_ = inputWindowsManager; touchEvent->SetTargetDisplayId(0); @@ -5807,7 +5872,12 @@ HWTEST_F(KeyCommandHandlerTest, KeyCommandHandlerTest_HandleKnuckleGestureTouchM displayInfo.id = 0; displayInfo.direction = DIRECTION0; auto inputWindowsManager = std::make_shared(); - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); IInputWindowsManager::instance_ = inputWindowsManager; KeyCommandHandler handler; @@ -5853,7 +5923,12 @@ HWTEST_F(KeyCommandHandlerTest, KeyCommandHandlerTest_HandleKnuckleGestureTouchM displayInfo.id = 0; displayInfo.direction = DIRECTION0; auto inputWindowsManager = std::make_shared(); - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); IInputWindowsManager::instance_ = inputWindowsManager; KeyCommandHandler handler; @@ -5899,7 +5974,12 @@ HWTEST_F(KeyCommandHandlerTest, KeyCommandHandlerTest_HandleKnuckleGestureTouchM displayInfo.id = 0; displayInfo.direction = DIRECTION0; auto inputWindowsManager = std::make_shared(); - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); IInputWindowsManager::instance_ = inputWindowsManager; KeyCommandHandler handler; @@ -5942,7 +6022,12 @@ HWTEST_F(KeyCommandHandlerTest, KeyCommandHandlerTest_HandleKnuckleGestureTouchM displayInfo.id = 0; displayInfo.direction = DIRECTION0; auto inputWindowsManager = std::make_shared(); - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); IInputWindowsManager::instance_ = inputWindowsManager; KeyCommandHandler handler; @@ -5988,7 +6073,12 @@ HWTEST_F(KeyCommandHandlerTest, KeyCommandHandlerTest_HandleKnuckleGestureTouchM displayInfo.id = 0; displayInfo.direction = DIRECTION0; auto inputWindowsManager = std::make_shared(); - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); IInputWindowsManager::instance_ = inputWindowsManager; KeyCommandHandler handler; @@ -6033,7 +6123,12 @@ HWTEST_F(KeyCommandHandlerTest, KeyCommandHandlerTest_HandleKnuckleGestureTouchM displayInfo.id = 0; displayInfo.direction = DIRECTION0; auto inputWindowsManager = std::make_shared(); - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); IInputWindowsManager::instance_ = inputWindowsManager; KeyCommandHandler handler; @@ -6215,8 +6310,13 @@ HWTEST_F(KeyCommandHandlerTest, KeyCommandHandlerTest_CheckSpecialRepeatKey_002, auto inputWindowsManager = std::make_shared(); WindowInfo windowInfo; windowInfo.id = 0; - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); - inputWindowsManager->displayGroupInfo_.focusWindowId = 0; + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); + displayGroupInfoRef.focusWindowId = 0; UDSServer udsServer; udsServer.idxPidMap_.insert(std::make_pair(0, 1)); SessionPtr sessionPtr = std::make_shared(repeatKey.ability.bundleName, 0, 0, 0, 0); @@ -6252,8 +6352,13 @@ HWTEST_F(KeyCommandHandlerTest, KeyCommandHandlerTest_CheckSpecialRepeatKey_003, auto inputWindowsManager = std::make_shared(); WindowInfo windowInfo; windowInfo.id = 0; - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); - inputWindowsManager->displayGroupInfo_.focusWindowId = 0; + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); + displayGroupInfoRef.focusWindowId = 0; UDSServer udsServer; udsServer.idxPidMap_.insert(std::make_pair(0, 1)); SessionPtr sessionPtr = std::make_shared(repeatKey.ability.bundleName, 0, 0, 0, 0); @@ -6289,8 +6394,13 @@ HWTEST_F(KeyCommandHandlerTest, KeyCommandHandlerTest_CheckSpecialRepeatKey_004, auto inputWindowsManager = std::make_shared(); WindowInfo windowInfo; windowInfo.id = 0; - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); - inputWindowsManager->displayGroupInfo_.focusWindowId = 0; + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); + displayGroupInfoRef.focusWindowId = 0; UDSServer udsServer; udsServer.idxPidMap_.insert(std::make_pair(0, 1)); SessionPtr sessionPtr = std::make_shared(repeatKey.ability.bundleName, 0, 0, 0, 0); diff --git a/service/key_command/test/long_press_subscriber_handler_test.cpp b/service/key_command/test/long_press_subscriber_handler_test.cpp index 72a71ed456f2d4abaa7395fa8200d5fedd15d4b1..9f2b5b8a763cc4503929795a923608aae12d5d0d 100644 --- a/service/key_command/test/long_press_subscriber_handler_test.cpp +++ b/service/key_command/test/long_press_subscriber_handler_test.cpp @@ -1067,7 +1067,12 @@ HWTEST_F(LongPressSubscribeHandlerTest, LongPressSubscribeHandlerTest_StartFinge displayInfo.height = 2720; displayInfo.uniq = "default0"; auto inputWindowsManager = std::make_shared(); - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); IInputWindowsManager::instance_ = inputWindowsManager; LONG_PRESS_EVENT_HANDLER->fingerGesture_.touches[0].x = 600; LONG_PRESS_EVENT_HANDLER->fingerGesture_.touches[0].y = 600; @@ -1095,7 +1100,12 @@ HWTEST_F(LongPressSubscribeHandlerTest, LongPressSubscribeHandlerTest_CheckFinge displayInfo.height = 2720; displayInfo.uniq = "default0"; auto inputWindowsManager = std::make_shared(); - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); IInputWindowsManager::instance_ = inputWindowsManager; LONG_PRESS_EVENT_HANDLER->fingerGesture_.touches[0].x = 600; LONG_PRESS_EVENT_HANDLER->fingerGesture_.touches[0].y = 600; @@ -1141,7 +1151,12 @@ HWTEST_F(LongPressSubscribeHandlerTest, LongPressSubscribeHandlerTest_CheckFinge displayInfo.height = 2720; displayInfo.uniq = "default0"; auto inputWindowsManager = std::make_shared(); - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); IInputWindowsManager::instance_ = inputWindowsManager; int32_t fingerCount = 2; LONG_PRESS_EVENT_HANDLER->fingerGesture_.touches[0].x = 600; @@ -1189,7 +1204,12 @@ HWTEST_F(LongPressSubscribeHandlerTest, LongPressSubscribeHandlerTest_CheckFinge displayInfo.height = 2720; displayInfo.uniq = "default0"; auto inputWindowsManager = std::make_shared(); - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); IInputWindowsManager::instance_ = inputWindowsManager; int32_t fingerCount = 2; LONG_PRESS_EVENT_HANDLER->fingerGesture_.touches[0].x = 600; @@ -1266,7 +1286,12 @@ HWTEST_F(LongPressSubscribeHandlerTest, LongPressSubscribeHandlerTest_ConvertVPT displayInfo.dpi = -1; displayInfo.uniq = "default0"; auto inputWindowsManager = std::make_shared(); - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); IInputWindowsManager::instance_ = inputWindowsManager; int32_t ret = LONG_PRESS_EVENT_HANDLER->ConvertVPToPX(vp); ASSERT_EQ(ret, 0); @@ -1384,7 +1409,12 @@ HWTEST_F(LongPressSubscribeHandlerTest, LongPressSubscribeHandlerTest_NotifySubs WindowInfo windowInfo; windowInfo.id = 10000; auto inputWindowsManager = std::make_shared(); - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); IInputWindowsManager::instance_ = inputWindowsManager; auto pointerEvent = SetupSingleFingerDownEvent(); diff --git a/service/libinput_adapter/src/libinput_adapter.cpp b/service/libinput_adapter/src/libinput_adapter.cpp index 347893ec57ada98ddcad4a4ddb943c4fdd4a86d2..e3d2bb8a8267efa4e8be19e07553fc478f890c89 100644 --- a/service/libinput_adapter/src/libinput_adapter.cpp +++ b/service/libinput_adapter/src/libinput_adapter.cpp @@ -361,7 +361,8 @@ bool LibinputAdapter::GetIsCaptureMode() InputWindowsManager* inputWindowsManager = static_cast(WIN_MGR.get()); if (inputWindowsManager != nullptr) { - DisplayGroupInfo displayGroupInfo = inputWindowsManager->GetDisplayGroupInfo(); + DisplayGroupInfo displayGroupInfo; + inputWindowsManager->GetDisplayGroupInfo(displayGroupInfo); bool isFloating = false; for (auto &windowInfo : displayGroupInfo.windowsInfo) { if (windowInfo.windowNameType == WINDOW_NAME_TYPE_SCHREENSHOT) { @@ -1360,7 +1361,8 @@ bool LibinputAdapter::IsCursorInCastWindow() if (inputWindowsManager == nullptr) { return false; } - DisplayGroupInfo displayGroupInfo = inputWindowsManager->GetDisplayGroupInfo(); + DisplayGroupInfo displayGroupInfo; + inputWindowsManager->GetDisplayGroupInfo(displayGroupInfo); for (auto &windowInfo : displayGroupInfo.windowsInfo) { if (windowInfo.windowType == CAST_WINDOW_TYPE) { auto mouseInfo = WIN_MGR->GetMouseInfo(); diff --git a/service/window_manager/include/input_windows_manager.h b/service/window_manager/include/input_windows_manager.h index 5cbea4cdf6080b243cb2906815165a6661459852..bdd275ab6adc7b1de178319153adc7a234659ecf 100644 --- a/service/window_manager/include/input_windows_manager.h +++ b/service/window_manager/include/input_windows_manager.h @@ -113,10 +113,10 @@ public: void UpdateAndAdjustMouseLocation(int32_t& displayId, double& x, double& y, bool isRealData = true); #endif // OHOS_BUILD_ENABLE_POINTER || OHOS_BUILD_ENABLE_TOUCH #ifdef OHOS_BUILD_ENABLE_POINTER - const DisplayGroupInfo& GetDisplayGroupInfo(int32_t groupId = -1); - std::vector GetDisplayInfoVector(int32_t groupId = -1) const; - const std::vector GetWindowInfoVector(int32_t groupId = -1) const; - int32_t GetFocusWindowId(int32_t groupId = -1) const; + void GetDisplayGroupInfo(DisplayGroupInfo& displayGroupInfoCur, int32_t groupId = DEFAULT_GROUP_ID); + std::vector GetDisplayInfoVector(int32_t groupId = DEFAULT_GROUP_ID) const; + const std::vector GetWindowInfoVector(int32_t groupId = DEFAULT_GROUP_ID) const; + int32_t GetFocusWindowId(int32_t groupId = DEFAULT_GROUP_ID) const; int32_t GetLogicalPositionX(int32_t id); int32_t GetLogicalPositionY(int32_t id); Direction GetLogicalPositionDirection(int32_t id); @@ -213,8 +213,9 @@ public: #endif // OHOS_BUILD_ENABLE_ANCO int32_t SetPixelMapData(int32_t infoId, void *pixelMap); - void CleanInvalidPiexMap(int32_t groupId = -1); + void CleanInvalidPiexMap(int32_t groupId = DEFAULT_GROUP_ID); void HandleWindowPositionChange(const DisplayGroupInfo &displayGroupInfo); + void SendCancelEventWhenWindowChange(int32_t pointerId, int32_t groupId = DEFAULT_GROUP_ID); #ifdef OHOS_BUILD_ENABLE_HARDWARE_CURSOR bool IsSupported(); #endif // OHOS_BUILD_ENABLE_HARDWARE_CURSOR @@ -242,7 +243,7 @@ private: void PrintDisplayGroupInfo(const DisplayGroupInfo displayGroupInfo); void PrintDisplayInfo(const DisplayInfo displayInfo); void PrintWindowGroupInfo(const WindowGroupInfo &windowGroupInfo); - void PrintWindowNavbar(int32_t groupId = -1); + void PrintWindowNavbar(int32_t groupId = DEFAULT_GROUP_ID); void CheckFocusWindowChange(const DisplayGroupInfo &displayGroupInfo); void CheckZorderWindowChange(const std::vector &oldWindowsInfo, const std::vector &newWindowsInfo); @@ -284,9 +285,9 @@ private: int32_t UpdateMouseTarget(std::shared_ptr pointerEvent); void UpdatePointerEvent(int32_t logicalX, int32_t logicalY, const std::shared_ptr& pointerEvent, const WindowInfo& touchWindow); - void NotifyPointerToWindow(int32_t groupId = -1); + void NotifyPointerToWindow(int32_t groupId = DEFAULT_GROUP_ID); void OnSessionLost(SessionPtr session); - void InitPointerStyle(int32_t groupId = -1); + void InitPointerStyle(int32_t groupId = DEFAULT_GROUP_ID); #endif // OHOS_BUILD_ENABLE_POINTER #if defined(OHOS_BUILD_ENABLE_POINTER) || defined(OHOS_BUILD_ENABLE_TOUCH) int32_t UpdatePoinerStyle(int32_t pid, int32_t windowId, PointerStyle pointerStyle); @@ -301,7 +302,7 @@ private: const std::shared_ptr& pointerEvent); void CheckUIExtentionWindowPointerHotArea(int32_t logicalX, int32_t logicalY, const std::vector& windowInfos, int32_t& windowId); - std::optional GetWindowInfo(int32_t logicalX, int32_t logicalY, int32_t groupId = -1); + std::optional GetWindowInfo(int32_t logicalX, int32_t logicalY, int32_t groupId = DEFAULT_GROUP_ID); bool IsInsideDisplay(const DisplayInfo& displayInfo, double physicalX, double physicalY); bool CalculateLayout(const DisplayInfo& displayInfo, const Vector2D &physical, Vector2D& layout); void FindPhysicalDisplay(const DisplayInfo& displayInfo, double& physicalX, @@ -316,10 +317,10 @@ private: int32_t logicalX, int32_t logicalY); void UpdatePointerChangeAreas(const DisplayGroupInfo &displayGroupInfo); #ifdef OHOS_BUILD_ENABLE_POINTER_DRAWING - void AdjustDisplayRotation(int32_t groupId = -1); + void AdjustDisplayRotation(int32_t groupId = DEFAULT_GROUP_ID); void SetPointerEvent(int32_t pointerAction, std::shared_ptr pointerEvent); void DispatchPointerCancel(int32_t displayId); - void AdjustDragPosition(int32_t groupId = -1); + void AdjustDragPosition(int32_t groupId = DEFAULT_GROUP_ID); #endif // OHOS_BUILD_ENABLE_POINTER_DRAWING #endif // OHOS_BUILD_ENABLE_POINTER || OHOS_BUILD_ENABLE_TOUCH @@ -357,7 +358,7 @@ void HandleOneHandMode(const DisplayInfo &displayInfo, std::shared_ptr pointerEvent, const WindowInfo* touchWindow); - void DispatchTouch(int32_t pointerAction, int32_t groupId = -1); + void DispatchTouch(int32_t pointerAction, int32_t groupId = DEFAULT_GROUP_ID); const std::shared_ptr FindPhysicalDisplayInfo(const std::string& uniq) const; bool GetPhysicalDisplayCoord(struct libinput_event_touch* touch, const DisplayInfo& info, EventTouch& touchInfo, bool isNeedClear = false); @@ -392,7 +393,7 @@ void HandleOneHandMode(const DisplayInfo &displayInfo, std::shared_ptr pointerEvent); #endif // OHOS_BUILD_ENABLE_POINTER && OHOS_BUILD_ENABLE_CROWN - void UpdateDisplayMode(int32_t groupId = -1); + void UpdateDisplayMode(int32_t groupId = DEFAULT_GROUP_ID); void HandleValidDisplayChange(const DisplayGroupInfo &displayGroupInfo); void ResetPointerPositionIfOutValidDisplay(const DisplayGroupInfo &displayGroupInfo); void CancelMouseEvent(); @@ -401,7 +402,7 @@ void HandleOneHandMode(const DisplayInfo &displayInfo, std::shared_ptr keyEvent, int32_t focusWindowId, int32_t groupId = -1); + void UpdateKeyEventDisplayId(std::shared_ptr keyEvent, int32_t focusWindowId, int32_t groupId = DEFAULT_GROUP_ID); bool OnDisplayRemovedOrCombinationChanged(const DisplayGroupInfo &displayGroupInfo); void ChangeWindowArea(int32_t x, int32_t y, WindowInfo &windowInfo); void ResetPointerPosition(const DisplayGroupInfo &displayGroupInfo); @@ -431,7 +432,9 @@ private: DisplayGroupInfo& GetMainDisplayGroupInfo(); const DisplayGroupInfo& GetConstMainDisplayGroupInfo() const; const DisplayGroupInfo& FindDisplayGroupInfo(int32_t displayId) const; - + void RotateScreen90(const DisplayInfo& info, PhysicalCoordinate& coord) const; + void InitDisplayGroupInfo(DisplayGroupInfo &displayGroupInfo); + void UpdateGroupInfo(); private: UDSServer* udsServer_ { nullptr }; #if defined(OHOS_BUILD_ENABLE_POINTER) || defined(OHOS_BUILD_ENABLE_TOUCH) @@ -460,6 +463,7 @@ private: std::weak_ptr touchGestureMgr_; #endif // defined(OHOS_BUILD_ENABLE_TOUCH) && defined(OHOS_BUILD_ENABLE_MONITOR) std::map displayGroupInfoMap_; + std::map displayGroupInfoMapTmp_; bool mainGroupExisted_; DisplayGroupInfo displayGroupInfoTmp_; std::mutex tmpInfoMutex_; @@ -470,7 +474,7 @@ private: std::map> windowsPerDisplayMap_; PointerStyle lastPointerStyle_ {.id = -1}; PointerStyle dragPointerStyle_ {.id = -1}; - MouseLocation mouseLocation_ = { -1, -1 }; + MouseLocation mouseLocation_ = { -1, 0, 0 }; std::map mouseLocationMap_; CursorPosition cursorPos_ {}; std::map cursorPosMap_; @@ -528,7 +532,10 @@ private: #endif // OHOS_BUILD_ENABLE_TOUCH bool IsFoldable_ { false }; int32_t timerId_ { -1 }; + int32_t lastDpi_ { 0 }; + std::map lastDpiMap_; std::shared_ptr GetlastPointerEvent(); + void SetDragFlagByPointer(std::shared_ptr lastPointerEvent); std::mutex mtx_; std::atomic_bool isHPR_ { false }; std::mutex oneHandMtx_; diff --git a/service/window_manager/src/input_windows_manager.cpp b/service/window_manager/src/input_windows_manager.cpp index cbe8ccbf61a9d24234187448f85358fe6ab186dc..9aff419c7eb4eabcdb0befbf255e5970ed1eda14 100644 --- a/service/window_manager/src/input_windows_manager.cpp +++ b/service/window_manager/src/input_windows_manager.cpp @@ -89,6 +89,7 @@ constexpr int32_t CAST_INPUT_DEVICEID { 0xAAAAAAFF }; constexpr int32_t CAST_SCREEN_DEVICEID { 0xAAAAAAFE }; constexpr int32_t DEFAULT_DPI { 0 }; constexpr int32_t DEFAULT_POSITION { 0 }; +constexpr int32_t MAIN_GROUPID { 0 }; } // namespace enum PointerHotArea : int32_t { @@ -153,18 +154,26 @@ InputWindowsManager::InputWindowsManager() : bindInfo_(BIND_CFG_FILE_NAME) lastTouchWindowInfo_.windowType = 0; lastTouchWindowInfo_.windowNameType = 0; #endif // OHOS_BUILD_ENABLE_TOUCH - { - std::lock_guard lock(tmpInfoMutex_); - displayGroupInfoTmp_.focusWindowId = -1; - displayGroupInfoTmp_.width = 0; - displayGroupInfoTmp_.height = 0; - } - { - std::unique_lock lock(displayGroupInfoMtx); - displayGroupInfo_.focusWindowId = -1; - displayGroupInfo_.width = 0; - displayGroupInfo_.height = 0; - } + std::unique_lock lock(displayGroupInfoMtx); + displayGroupInfoTmp_.focusWindowId = -1; + displayGroupInfoTmp_.width = 0; + displayGroupInfoTmp_.height = 0; + displayGroupInfo_.groupId = MAIN_GROUPID; + displayGroupInfo_.isMainGroup = true; + displayGroupInfo_.focusWindowId = -1; + displayGroupInfo_.width = 0; + displayGroupInfo_.height = 0; + displayGroupInfoMap_[MAIN_GROUPID] = displayGroupInfo_; + displayGroupInfoMapTmp_[MAIN_GROUPID] = displayGroupInfo_; + captureModeInfoMap_[MAIN_GROUPID] = captureModeInfo_; + pointerDrawFlagMap_[MAIN_GROUPID] = pointerDrawFlag_; + mouseLocationMap_[MAIN_GROUPID] = mouseLocation_; + windowsPerDisplayMap_[MAIN_GROUPID] = windowsPerDisplay_; + lastPointerEventforWindowChangeMap_[MAIN_GROUPID] = lastPointerEventforWindowChange_; + displayModeMap_[MAIN_GROUPID] = displayMode_; + lastDpiMap_[MAIN_GROUPID] = lastDpi_; + CursorPosition cursorPos = {}; + cursorPosMap_[MAIN_GROUPID] = cursorPos; } InputWindowsManager::~InputWindowsManager() @@ -298,9 +307,10 @@ const std::vector InputWindowsManager::GetWindowGroupInfoByDisplayId bool InputWindowsManager::CheckAppFocused(int32_t pid) { int32_t focusWindowId = DEFAULT_VALUE; - for (auto &item : displayGroupInfoMap_) { + std::unique_lock lock(displayGroupInfoMtx); + for (const auto& item : displayGroupInfoMap_) { focusWindowId = item.second.focusWindowId; - for (auto windowinfo : item.second.windowsInfo) { + for (const auto& windowinfo : item.second.windowsInfo) { if ((windowinfo.id == focusWindowId) && (windowinfo.pid == pid)) { return true; } else if (windowinfo.id == focusWindowId) { @@ -523,8 +533,9 @@ void InputWindowsManager::FoldScreenRotation(std::shared_ptr point DisplayGroupInfo& InputWindowsManager::FindTargetDisplayGroupInfo(int32_t displayId) { + std::unique_lock lock(displayGroupInfoMtx); for (auto& it : displayGroupInfoMap_) { - for (auto& item : it.second.displaysInfo) { + for (const auto& item : it.second.displaysInfo) { if (item.id == displayId) { return it.second; } @@ -536,6 +547,7 @@ DisplayGroupInfo& InputWindowsManager::FindTargetDisplayGroupInfo(int32_t displa int32_t InputWindowsManager::FindDisplayGroupId(int32_t displayId) const { int32_t groupId = DEFAULT_GROUP_ID; + std::unique_lock lock(displayGroupInfoMtx); for (auto& it : displayGroupInfoMap_) { for (auto& item : it.second.displaysInfo) { if (item.id == displayId) { @@ -552,6 +564,7 @@ int32_t InputWindowsManager::FindDisplayGroupId(int32_t displayId) const DisplayGroupInfo& InputWindowsManager::GetMainDisplayGroupInfo() { + std::unique_lock lock(displayGroupInfoMtx); for (auto &it : displayGroupInfoMap_) if (it.second.isMainGroup) { return it.second; @@ -561,6 +574,7 @@ DisplayGroupInfo& InputWindowsManager::GetMainDisplayGroupInfo() const DisplayGroupInfo& InputWindowsManager::GetConstMainDisplayGroupInfo() const { + std::unique_lock lock(displayGroupInfoMtx); for (auto &it : displayGroupInfoMap_) if (it.second.isMainGroup) { return it.second; @@ -568,7 +582,9 @@ const DisplayGroupInfo& InputWindowsManager::GetConstMainDisplayGroupInfo() cons return displayGroupInfo_; } -const DisplayGroupInfo& InputWindowsManager::FindDisplayGroupInfo(int32_t displayId) const { +const DisplayGroupInfo& InputWindowsManager::FindDisplayGroupInfo(int32_t displayId) const +{ + std::unique_lock lock(displayGroupInfoMtx); for (auto& it : displayGroupInfoMap_) { for (auto& item : it.second.displaysInfo) { if (item.id == displayId) { @@ -631,6 +647,7 @@ void InputWindowsManager::HandleKeyEventWindowId(std::shared_ptr keyEv void InputWindowsManager::ReissueEvent(std::shared_ptr keyEvent, int32_t focusWindowId) { + CHKPV(keyEvent); if (keyEvent->GetKeyAction() != KeyEvent::KEY_ACTION_CANCEL && focusWindowId_ != -1 && focusWindowId_ != focusWindowId && keyEvent->IsRepeatKey()) { auto keyEventReissue = std::make_shared(*keyEvent); @@ -788,35 +805,31 @@ std::vector> InputWindowsManager::GetPidAndUpdate int32_t InputWindowsManager::GetWindowPid(int32_t windowId) const { CALL_DEBUG_ENTER; - int32_t windowPid = INVALID_PID; + std::unique_lock lock(displayGroupInfoMtx); for (auto groupItem : displayGroupInfoMap_) { for (const auto &item : groupItem.second.windowsInfo) { MMI_HILOGD("Get windowId:%{public}d", item.id); if (item.id == windowId) { - windowPid = item.pid; - return windowPid; + return item.pid; } for (const auto &uiExtentionWindow : item.uiExtentionWindowInfo) { if (uiExtentionWindow.id == windowId) { - windowPid = uiExtentionWindow.pid; - return windowPid; + return uiExtentionWindow.pid; } } } } - return windowPid; + return INVALID_PID; } int32_t InputWindowsManager::GetWindowPid(int32_t windowId, const std::vector &windowsInfo) const { - int32_t windowPid = INVALID_PID; for (const auto &item : windowsInfo) { if (item.id == windowId) { - windowPid = item.pid; - break; + return item.pid; } } - return windowPid; + return INVALID_PID; } void InputWindowsManager::CheckFocusWindowChange(const DisplayGroupInfo &displayGroupInfo) @@ -917,6 +930,7 @@ void InputWindowsManager::UpdateCaptureMode(const DisplayGroupInfo &displayGroup bool InputWindowsManager::IsFocusedSession(int32_t session) const { if (session >= 0) { + std::unique_lock lock(displayGroupInfoMtx); for (auto &curGroupInfo : displayGroupInfoMap_) { if (session == GetWindowPid(curGroupInfo.second.focusWindowId)) { return true; @@ -1048,9 +1062,10 @@ void InputWindowsManager::UpdateWindowsInfoPerDisplay(const DisplayGroupInfo &di CheckZorderWindowChange(windowsPerDisplayMap_[groupId][displayId].windowsInfo, item.second.windowsInfo); } } - - windowsPerDisplayMap_[groupId] = windowsPerDisplay; - + { + std::unique_lock lock(displayGroupInfoMtx); + windowsPerDisplayMap_[groupId] = windowsPerDisplay; + } #if defined(OHOS_BUILD_ENABLE_TOUCH) && defined(OHOS_BUILD_ENABLE_MONITOR) for (const auto &window : displayGroupInfo.windowsInfo) { if (window.windowType == static_cast(Rosen::WindowType::WINDOW_TYPE_TRANSPARENT_VIEW)) { @@ -1072,7 +1087,10 @@ WINDOW_UPDATE_ACTION InputWindowsManager::UpdateWindowInfo(DisplayGroupInfo &dis } MMI_HILOGD("Current action is:%{public}d", action); #if defined(OHOS_BUILD_ENABLE_POINTER) && defined(OHOS_BUILD_ENABLE_POINTER_DRAWING) - pointerDrawFlagMap_[displayGroupInfo.groupId] = NeedUpdatePointDrawFlag(displayGroupInfo.windowsInfo); + { + std::unique_lock lock(displayGroupInfoMtx); + pointerDrawFlagMap_[displayGroupInfo.groupId] = NeedUpdatePointDrawFlag(displayGroupInfo.windowsInfo); + } #endif // OHOS_BUILD_ENABLE_POINTER && OHOS_BUILD_ENABLE_POINTER_DRAWING std::sort(displayGroupInfo.windowsInfo.begin(), displayGroupInfo.windowsInfo.end(), [](const WindowInfo &lwindow, const WindowInfo &rwindow) -> bool { @@ -1248,6 +1266,7 @@ void InputWindowsManager::HandleValidDisplayChange(const DisplayGroupInfo &displ CursorPosition InputWindowsManager::GetCursorPos(const DisplayGroupInfo &displayGroupInfo) { int32_t groupId = displayGroupInfo.groupId; + std::unique_lock lock(displayGroupInfoMtx); if ((cursorPosMap_[groupId].displayId < 0) && !displayGroupInfoMap_[groupId].displaysInfo.empty()) { DisplayInfo displayInfo = displayGroupInfo.displaysInfo[0]; #ifdef OHOS_BUILD_ENABLE_HARDWARE_CURSOR @@ -1260,7 +1279,6 @@ CursorPosition InputWindowsManager::GetCursorPos(const DisplayGroupInfo &display return cursorPosMap_[groupId]; } - void InputWindowsManager::ResetPointerPositionIfOutValidDisplay(const DisplayGroupInfo &displayGroupInfo) { if (displayGroupInfo.displaysInfo.empty()) { @@ -1589,21 +1607,47 @@ bool InputWindowsManager::JudgeCaramaInFore() return programName.find(".camera") != std::string::npos; } -void InputWindowsManager::UpdateDisplayInfo(DisplayGroupInfo &displayGroupInfo) +void InputWindowsManager::InitDisplayGroupInfo(DisplayGroupInfo &displayGroupInfo) { - bool isNewGroup = (displayGroupInfoMap_.find(displayGroupInfo.groupId) == displayGroupInfoMap_.end()); - if (isNewGroup) { - displayGroupInfoMap_[displayGroupInfo.groupId] = displayGroupInfo_; - captureModeInfoMap_[displayGroupInfo.groupId] = captureModeInfo_; - pointerDrawFlagMap_[displayGroupInfo.groupId] = pointerDrawFlag_; - mouseLocationMap_[displayGroupInfo.groupId] = mouseLocation_; - windowsPerDisplayMap_[displayGroupInfo.groupId] = windowsPerDisplay_; - lastPointerEventforWindowChangeMap_[displayGroupInfo.groupId] = lastPointerEventforWindowChange_; - displayModeMap_[displayGroupInfo.groupId] = displayMode_; - windowsHotAreasMap_[displayGroupInfo.groupId] = windowsHotAreas_; + std::unique_lock lock(displayGroupInfoMtx); + if (displayGroupInfoMap_.find(displayGroupInfo.groupId) != displayGroupInfoMap_.end()) { + return; } + displayGroupInfoMap_[displayGroupInfo.groupId] = displayGroupInfo; + captureModeInfoMap_[displayGroupInfo.groupId] = captureModeInfo_; + pointerDrawFlagMap_[displayGroupInfo.groupId] = pointerDrawFlag_; + mouseLocationMap_[displayGroupInfo.groupId] = mouseLocation_; + windowsPerDisplayMap_[displayGroupInfo.groupId] = windowsPerDisplay_; + windowsPerDisplayMap_[displayGroupInfo.groupId] = windowsPerDisplay_; + lastPointerEventforWindowChangeMap_[displayGroupInfo.groupId] = lastPointerEventforWindowChange_; + displayModeMap_[displayGroupInfo.groupId] = displayMode_; + lastDpiMap_[displayGroupInfo.groupId] = lastDpi_; + CursorPosition cursorPos = {}; + cursorPosMap_[displayGroupInfo.groupId] = cursorPos; +} - DisplayGroupInfo &curDisplayGroupInfo = displayGroupInfoMap_[displayGroupInfo.groupId]; +void InputWindowsManager::UpdateGroupInfo() +{ + std::unique_lock lock(displayGroupInfoMtx); + for (auto &curGroupInfo : displayGroupInfoMap_) { + if (!(curGroupInfo.second.isMainGroup) + && !(displayGroupInfoMapTmp_.find(curGroupInfo.first) != displayGroupInfoMapTmp_.end())) { + displayGroupInfoMap_.erase(curGroupInfo.first); + captureModeInfoMap_.erase(curGroupInfo.first); + pointerDrawFlagMap_.erase(curGroupInfo.first); + //mouseLocationMap_.erase(curGroupInfo.first); + windowsPerDisplayMap_.erase(curGroupInfo.first); + lastPointerEventforWindowChangeMap_.erase(curGroupInfo.first); + displayModeMap_.erase(curGroupInfo.first); + lastDpiMap_.erase(curGroupInfo.first); + cursorPosMap_.erase(curGroupInfo.first); + } + } +} + +void InputWindowsManager::UpdateDisplayInfo(DisplayGroupInfo &displayGroupInfo) +{ + InitDisplayGroupInfo(displayGroupInfo); int32_t groupId = displayGroupInfo.groupId; if (!mainGroupExisted_ && displayGroupInfo.isMainGroup) { mainGroupExisted_ = true; @@ -1754,6 +1798,7 @@ void InputWindowsManager::AdjustDragPosition(int32_t groupId) DisplayMode InputWindowsManager::GetDisplayMode() const { const DisplayGroupInfo &tmpGroupInfo = GetConstMainDisplayGroupInfo(); + std::shared_lock lock(displayGroupInfoMtx); auto it = displayModeMap_.find(tmpGroupInfo.groupId); if (it != displayModeMap_.end()) { return it->second; @@ -1835,6 +1880,9 @@ void InputWindowsManager::PointerDrawingManagerOnDisplayInfo(const DisplayGroupI } newId = displayGroupInfo_.displaysInfo[0].id; } + if (lastDpiMap_.find(groupId) == lastDpiMap_.end()) { + lastDpiMap_[groupId] = lastDpi_; + } } for (auto displayInfo : displayGroupInfo.displaysInfo) { if (displayInfo.uniqueId == currentDisplayInfo.uniqueId && displayInfo.dpi != currentDisplayInfo.dpi) { @@ -2477,7 +2525,8 @@ const std::shared_ptr InputWindowsManager::GetPhysicalDisplay(int32 #ifdef OHOS_BUILD_ENABLE_TOUCH const std::shared_ptr InputWindowsManager::FindPhysicalDisplayInfo(const std::string& uniq) const { - for (auto &item : displayGroupInfoMap_) { + std::unique_lock lock(displayGroupInfoMtx); + for (const auto &item : displayGroupInfoMap_) { for (const auto &it : item.second.displaysInfo) { if (it.uniq == uniq) { return std::make_shared(it); @@ -2794,13 +2843,13 @@ bool InputWindowsManager::CalculateTipPoint(struct libinput_event_tablet_tool* t #endif // OHOS_BUILD_ENABLE_TOUCH #ifdef OHOS_BUILD_ENABLE_POINTER -const DisplayGroupInfo& InputWindowsManager::GetDisplayGroupInfo(int32_t groupId) +void InputWindowsManager::GetDisplayGroupInfo(DisplayGroupInfo& displayGroupInfoCur, int32_t groupId) { + std::shared_lock lock(displayGroupInfoMtx); auto iter = displayGroupInfoMap_.find(groupId); if (iter != displayGroupInfoMap_.end()) { - return iter->second; + displayGroupInfoCur = iter->second; } - return displayGroupInfo_; } std::vector InputWindowsManager::GetDisplayInfoVector(int32_t groupId) const @@ -6459,9 +6508,20 @@ void InputWindowsManager::UpdateKeyEventDisplayId(std::shared_ptr keyE { CHKPV(keyEvent); bool hasFound = false; - for (const auto &item : windowsPerDisplayMap_[groupId]) { + int32_t displayId = -1; + std::map windowsPerDisplayTmp = windowsPerDisplay_; + { + std::unique_lock lock(displayGroupInfoMtx); + const auto iter = windowsPerDisplayMap_.find(groupId); + if (iter != windowsPerDisplayMap_.end()) { + windowsPerDisplayTmp = iter->second; + displayId = item.second.displayId; + } + } + for (const auto &item : windowsPerDisplayTmp) { + if (item.second.focusWindowId == focusWindowId) { - keyEvent->SetTargetDisplayId(item.second.displayId); + keyEvent->SetTargetDisplayId(displayId); hasFound = true; } } @@ -6534,17 +6594,18 @@ const std::shared_ptr InputWindowsManager::GetPhysicalDisplay(int32 #if defined(OHOS_BUILD_ENABLE_POINTER) || defined(OHOS_BUILD_ENABLE_TOUCH) std::optional InputWindowsManager::GetWindowInfoById(int32_t windowId) const { - for (auto iter = windowsPerDisplay_.begin(); iter != windowsPerDisplay_.end(); ++iter) { - int32_t displayId = iter->first; - const std::vector &windowsInfo = iter->second.windowsInfo; - if (displayId < 0) { - MMI_HILOGE("windowsPerDisplay_ contain invalid displayId:%{public}d", displayId); - continue; - } - for (const auto& item : windowsInfo) { - if (item.id == windowId && - (item.flags & WindowInfo::FLAG_BIT_UNTOUCHABLE) != WindowInfo::FLAG_BIT_UNTOUCHABLE && - transparentWins_.find(item.id) == transparentWins_.end()) { + std::unique_lock lock(displayGroupInfoMtx); + for (const auto &it : windowsPerDisplayMap_) { + for (auto iter = it.second.begin(); iter != it.second.end(); ++iter) { + int32_t displayId = iter->first; + if (displayId < 0) { + MMI_HILOGE("windowsPerDisplay_ contain invalid displayId:%{public}d", displayId); + continue; + } + for (const auto& item : iter->second.windowsInfo) { + CHKCC(item.id == windowId && + (item.flags & WindowInfo::FLAG_BIT_UNTOUCHABLE) != WindowInfo::FLAG_BIT_UNTOUCHABLE && + transparentWins_.find(item.id) == transparentWins_.end()); return std::make_optional(item); } } @@ -6782,4 +6843,4 @@ bool InputWindowsManager::IsAccessibilityEventWithZorderInjected(std::shared_ptr return false; } } // namespace MMI -} // namespace OHOS +} // namespace OHOS \ No newline at end of file diff --git a/service/window_manager/test/input_windows_manager_ex_test.cpp b/service/window_manager/test/input_windows_manager_ex_test.cpp index 2a43f316a11e10bfbe81d454ef4883bb5df4885c..a1e5fa84d152ce171acdc4091dfb31112ccc3b92 100644 --- a/service/window_manager/test/input_windows_manager_ex_test.cpp +++ b/service/window_manager/test/input_windows_manager_ex_test.cpp @@ -92,16 +92,21 @@ HWTEST_F(InputWindowsManagerTest, UpdateTarget_002, TestSize.Level1) ASSERT_NE(inputWindowsManager, nullptr); UDSServer udsServer; inputWindowsManager->udsServer_ = &udsServer; - inputWindowsManager->displayGroupInfo_.focusWindowId = 1; + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.focusWindowId = 1; WindowInfo windowInfo; windowInfo.id = 1; windowInfo.pid = 11; - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + displayGroupInfoRef.windowsInfo.push_back(windowInfo); std::shared_ptr keyEvent = KeyEvent::Create(); ASSERT_NE(keyEvent, nullptr); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->UpdateTarget(keyEvent)); - inputWindowsManager->displayGroupInfo_.focusWindowId = -1; - inputWindowsManager->displayGroupInfo_.windowsInfo.clear(); + displayGroupInfoRef.focusWindowId = -1; + displayGroupInfoRef.windowsInfo.clear(); inputWindowsManager->udsServer_ = nullptr; } @@ -120,16 +125,21 @@ HWTEST_F(InputWindowsManagerTest, UpdateTarget_003, TestSize.Level1) ASSERT_NE(inputWindowsManager, nullptr); UDSServer udsServer; inputWindowsManager->udsServer_ = &udsServer; - inputWindowsManager->displayGroupInfo_.focusWindowId = 1; + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.focusWindowId = 1; WindowInfo windowInfo; windowInfo.id = 1; windowInfo.pid = 11; - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + displayGroupInfoRef.windowsInfo.push_back(windowInfo); std::shared_ptr keyEvent = KeyEvent::Create(); ASSERT_NE(keyEvent, nullptr); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->UpdateTarget(keyEvent)); - inputWindowsManager->displayGroupInfo_.focusWindowId = -1; - inputWindowsManager->displayGroupInfo_.windowsInfo.clear(); + displayGroupInfoRef.focusWindowId = -1; + displayGroupInfoRef.windowsInfo.clear(); inputWindowsManager->udsServer_ = nullptr; } #endif // OHOS_BUILD_ENABLE_KEYBOARD @@ -167,13 +177,18 @@ HWTEST_F(InputWindowsManagerTest, PointerDrawingManagerOnDisplayInfo_002, TestSi ASSERT_NE(inputWindowsManager, nullptr); DisplayInfo displayInfo; displayInfo.id = 0; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); inputWindowsManager->lastPointerEvent_ = PointerEvent::Create(); ASSERT_NE(inputWindowsManager->lastPointerEvent_, nullptr); inputWindowsManager->lastPointerEvent_->SetPointerAction(PointerEvent::POINTER_ACTION_MOVE); DisplayGroupInfo displayGroupInfo; EXPECT_NO_FATAL_FAILURE(inputWindowsManager->PointerDrawingManagerOnDisplayInfo(displayGroupInfo)); - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); inputWindowsManager->lastPointerEvent_.reset(); inputWindowsManager->lastPointerEvent_ = nullptr; } @@ -193,14 +208,19 @@ HWTEST_F(InputWindowsManagerTest, PointerDrawingManagerOnDisplayInfo_003, TestSi ASSERT_NE(inputWindowsManager, nullptr); DisplayInfo displayInfo; displayInfo.id = 0; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); inputWindowsManager->lastPointerEvent_ = PointerEvent::Create(); ASSERT_NE(inputWindowsManager->lastPointerEvent_, nullptr); inputWindowsManager->lastPointerEvent_->SetPointerAction(PointerEvent::POINTER_ACTION_MOVE); inputWindowsManager->lastPointerEvent_->SetButtonPressed(1); DisplayGroupInfo displayGroupInfo; EXPECT_NO_FATAL_FAILURE(inputWindowsManager->PointerDrawingManagerOnDisplayInfo(displayGroupInfo)); - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); inputWindowsManager->lastPointerEvent_.reset(); inputWindowsManager->lastPointerEvent_ = nullptr; } @@ -220,13 +240,18 @@ HWTEST_F(InputWindowsManagerTest, PointerDrawingManagerOnDisplayInfo_004, TestSi ASSERT_NE(inputWindowsManager, nullptr); DisplayInfo displayInfo; displayInfo.id = 0; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); inputWindowsManager->lastPointerEvent_ = PointerEvent::Create(); ASSERT_NE(inputWindowsManager->lastPointerEvent_, nullptr); inputWindowsManager->lastPointerEvent_->SetPointerAction(PointerEvent::POINTER_ACTION_DOWN); DisplayGroupInfo displayGroupInfo; EXPECT_NO_FATAL_FAILURE(inputWindowsManager->PointerDrawingManagerOnDisplayInfo(displayGroupInfo)); - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); inputWindowsManager->lastPointerEvent_.reset(); inputWindowsManager->lastPointerEvent_ = nullptr; } @@ -249,7 +274,12 @@ HWTEST_F(InputWindowsManagerTest, PointerDrawingManagerOnDisplayInfo_005, TestSi displayInfo.id = 0; displayInfo.x = 8; displayInfo.y = 8; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); WindowInfo windowInfo; windowInfo.id = 1; windowInfo.pid = 11; @@ -260,14 +290,14 @@ HWTEST_F(InputWindowsManagerTest, PointerDrawingManagerOnDisplayInfo_005, TestSi rect.width = 10; rect.height = 10; windowInfo.pointerHotAreas.push_back(rect); - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + displayGroupInfoRef.windowsInfo.push_back(windowInfo); inputWindowsManager->lastPointerEvent_ = PointerEvent::Create(); ASSERT_NE(inputWindowsManager->lastPointerEvent_, nullptr); inputWindowsManager->lastPointerEvent_->SetPointerAction(PointerEvent::POINTER_ACTION_MOVE); DisplayGroupInfo displayGroupInfo; EXPECT_NO_FATAL_FAILURE(inputWindowsManager->PointerDrawingManagerOnDisplayInfo(displayGroupInfo)); - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); - inputWindowsManager->displayGroupInfo_.windowsInfo.clear(); + displayGroupInfoRef.windowsInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); inputWindowsManager->lastPointerEvent_.reset(); inputWindowsManager->lastPointerEvent_ = nullptr; } @@ -289,7 +319,12 @@ HWTEST_F(InputWindowsManagerTest, PointerDrawingManagerOnDisplayInfo_006, TestSi displayInfo.id = 0; displayInfo.x = 8; displayInfo.y = 8; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); WindowInfo windowInfo; windowInfo.id = 1; windowInfo.pid = 11; @@ -300,7 +335,7 @@ HWTEST_F(InputWindowsManagerTest, PointerDrawingManagerOnDisplayInfo_006, TestSi rect.width = 10; rect.height = 10; windowInfo.pointerHotAreas.push_back(rect); - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + displayGroupInfoRef.windowsInfo.push_back(windowInfo); inputWindowsManager->lastPointerEvent_ = PointerEvent::Create(); ASSERT_NE(inputWindowsManager->lastPointerEvent_, nullptr); inputWindowsManager->lastPointerEvent_->SetPointerAction(PointerEvent::POINTER_ACTION_BUTTON_DOWN); @@ -308,8 +343,8 @@ HWTEST_F(InputWindowsManagerTest, PointerDrawingManagerOnDisplayInfo_006, TestSi inputWindowsManager->dragFlag_ = true; DisplayGroupInfo displayGroupInfo; EXPECT_NO_FATAL_FAILURE(inputWindowsManager->PointerDrawingManagerOnDisplayInfo(displayGroupInfo)); - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); - inputWindowsManager->displayGroupInfo_.windowsInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); + displayGroupInfoRef.windowsInfo.clear(); inputWindowsManager->lastPointerEvent_.reset(); inputWindowsManager->lastPointerEvent_ = nullptr; inputWindowsManager->isDragBorder_ = false; @@ -333,7 +368,12 @@ HWTEST_F(InputWindowsManagerTest, PointerDrawingManagerOnDisplayInfo_007, TestSi displayInfo.id = 0; displayInfo.x = 8; displayInfo.y = 8; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); WindowInfo windowInfo; windowInfo.id = 1; windowInfo.pid = 11; @@ -344,7 +384,7 @@ HWTEST_F(InputWindowsManagerTest, PointerDrawingManagerOnDisplayInfo_007, TestSi rect.width = 10; rect.height = 10; windowInfo.pointerHotAreas.push_back(rect); - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + displayGroupInfoRef.windowsInfo.push_back(windowInfo); inputWindowsManager->lastPointerEvent_ = PointerEvent::Create(); ASSERT_NE(inputWindowsManager->lastPointerEvent_, nullptr); inputWindowsManager->lastPointerEvent_->SetPointerAction(PointerEvent::POINTER_ACTION_BUTTON_UP); @@ -352,8 +392,8 @@ HWTEST_F(InputWindowsManagerTest, PointerDrawingManagerOnDisplayInfo_007, TestSi inputWindowsManager->dragFlag_ = true; DisplayGroupInfo displayGroupInfo; EXPECT_NO_FATAL_FAILURE(inputWindowsManager->PointerDrawingManagerOnDisplayInfo(displayGroupInfo)); - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); - inputWindowsManager->displayGroupInfo_.windowsInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); + displayGroupInfoRef.windowsInfo.clear(); inputWindowsManager->lastPointerEvent_.reset(); inputWindowsManager->lastPointerEvent_ = nullptr; inputWindowsManager->isDragBorder_ = false; @@ -385,12 +425,17 @@ HWTEST_F(InputWindowsManagerTest, SendPointerEvent_001, TestSize.Level1) int32_t pointerAction = PointerEvent::POINTER_ACTION_UNKNOWN; DisplayInfo displayInfo; displayInfo.id = 10; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); inputWindowsManager->extraData_.appended = true; inputWindowsManager->extraData_.sourceType = PointerEvent::SOURCE_TYPE_MOUSE; EXPECT_NO_FATAL_FAILURE(inputWindowsManager->SendPointerEvent(pointerAction)); inputWindowsManager->udsServer_ = nullptr; - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); inputWindowsManager->extraData_.appended = false; inputWindowsManager->extraData_.sourceType = -1; } @@ -419,12 +464,17 @@ HWTEST_F(InputWindowsManagerTest, SendPointerEvent_002, TestSize.Level1) int32_t pointerAction = PointerEvent::POINTER_ACTION_ENTER_WINDOW ; DisplayInfo displayInfo; displayInfo.id = 10; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); inputWindowsManager->extraData_.appended = false; inputWindowsManager->extraData_.sourceType = PointerEvent::SOURCE_TYPE_MOUSE; EXPECT_NO_FATAL_FAILURE(inputWindowsManager->SendPointerEvent(pointerAction)); inputWindowsManager->udsServer_ = nullptr; - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); inputWindowsManager->extraData_.sourceType = -1; } @@ -452,12 +502,17 @@ HWTEST_F(InputWindowsManagerTest, SendPointerEvent_003, TestSize.Level1) int32_t pointerAction = PointerEvent::POINTER_ACTION_UNKNOWN; DisplayInfo displayInfo; displayInfo.id = 10; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); inputWindowsManager->extraData_.appended = false; inputWindowsManager->extraData_.sourceType = PointerEvent::SOURCE_TYPE_MOUSE; EXPECT_NO_FATAL_FAILURE(inputWindowsManager->SendPointerEvent(pointerAction)); inputWindowsManager->udsServer_ = nullptr; - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); inputWindowsManager->extraData_.sourceType = -1; } @@ -509,13 +564,18 @@ HWTEST_F(InputWindowsManagerTest, SendPointerEvent_005, TestSize.Level1) int32_t pointerAction = PointerEvent::POINTER_ACTION_UNKNOWN; DisplayInfo displayInfo; displayInfo.id = 10; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); inputWindowsManager->extraData_.appended = true; inputWindowsManager->extraData_.sourceType = PointerEvent::SOURCE_TYPE_MOUSE; EXPECT_NO_FATAL_FAILURE(inputWindowsManager->SendPointerEvent(pointerAction)); inputWindowsManager->udsServer_ = nullptr; inputWindowsManager->extraData_.appended = false; - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); inputWindowsManager->extraData_.sourceType = -1; } @@ -563,12 +623,17 @@ HWTEST_F(InputWindowsManagerTest, TransformTipPoint_001, TestSize.Level1) displayInfo.id = 0; displayInfo.uniq = "default0"; displayInfo.direction = DIRECTION90; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); libinput_event_tablet_tool event {}; PhysicalCoordinate coord; int32_t displayId; EXPECT_NO_FATAL_FAILURE(inputWindowsManager->TransformTipPoint(&event, coord, displayId)); - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); } /** @@ -588,12 +653,17 @@ HWTEST_F(InputWindowsManagerTest, TransformTipPoint_002, TestSize.Level1) displayInfo.id = 0; displayInfo.uniq = "default0"; displayInfo.direction = DIRECTION270; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); libinput_event_tablet_tool event {}; PhysicalCoordinate coord; int32_t displayId; EXPECT_NO_FATAL_FAILURE(inputWindowsManager->TransformTipPoint(&event, coord, displayId)); - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); } /** @@ -612,12 +682,17 @@ HWTEST_F(InputWindowsManagerTest, TransformTipPoint_003, TestSize.Level1) displayInfo.id = 0; displayInfo.uniq = "default0"; displayInfo.direction = DIRECTION0; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); libinput_event_tablet_tool event {}; PhysicalCoordinate coord; int32_t displayId; EXPECT_NO_FATAL_FAILURE(inputWindowsManager->TransformTipPoint(&event, coord, displayId)); - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); } /** @@ -921,12 +996,17 @@ HWTEST_F(InputWindowsManagerTest, CalculateTipPoint_002, TestSize.Level1) displayInfo.id = 0; displayInfo.uniq = "default0"; displayInfo.direction = DIRECTION0; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); libinput_event_tablet_tool event {}; PhysicalCoordinate coord; int32_t displayId; EXPECT_NO_FATAL_FAILURE(inputWindowsManager->CalculateTipPoint(&event, displayId, coord)); - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); } /** @@ -968,13 +1048,18 @@ HWTEST_F(InputWindowsManagerTest, UpdateMouseTarget_001, TestSize.Level1) DisplayInfo displayInfo; displayInfo.id = 0; displayInfo.displayDirection = DIRECTION0; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); std::shared_ptr pointerEvent = PointerEvent::Create(); ASSERT_NE(pointerEvent, nullptr); PointerEvent::PointerItem item; pointerEvent->AddPointerItem(item); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->UpdateMouseTarget(pointerEvent)); - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); } /** @@ -992,14 +1077,19 @@ HWTEST_F(InputWindowsManagerTest, UpdateMouseTarget_002, TestSize.Level1) DisplayInfo displayInfo; displayInfo.id = 0; displayInfo.displayDirection = DIRECTION0; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); std::shared_ptr pointerEvent = PointerEvent::Create(); ASSERT_NE(pointerEvent, nullptr); PointerEvent::PointerItem item; pointerEvent->AddPointerItem(item); pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_BUTTON_DOWN); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->UpdateMouseTarget(pointerEvent)); - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); } /** @@ -1018,14 +1108,19 @@ HWTEST_F(InputWindowsManagerTest, UpdateMouseTarget_003, TestSize.Level1) DisplayInfo displayInfo; displayInfo.id = 0; displayInfo.displayDirection = DIRECTION0; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); std::shared_ptr pointerEvent = PointerEvent::Create(); ASSERT_NE(pointerEvent, nullptr); PointerEvent::PointerItem item; pointerEvent->AddPointerItem(item); pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_BUTTON_DOWN); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->UpdateMouseTarget(pointerEvent)); - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); inputWindowsManager->mouseDownInfo_.id = -1; } @@ -1049,14 +1144,19 @@ HWTEST_F(InputWindowsManagerTest, UpdateMouseTarget_004, TestSize.Level1) DisplayInfo displayInfo; displayInfo.id = 0; displayInfo.displayDirection = DIRECTION0; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); std::shared_ptr pointerEvent = PointerEvent::Create(); ASSERT_NE(pointerEvent, nullptr); PointerEvent::PointerItem item; pointerEvent->AddPointerItem(item); pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_AXIS_UPDATE); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->UpdateMouseTarget(pointerEvent)); - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); inputWindowsManager->mouseDownInfo_.id = -1; inputWindowsManager->udsServer_ = nullptr; } @@ -1077,26 +1177,31 @@ HWTEST_F(InputWindowsManagerTest, UpdateMouseTarget_005, TestSize.Level1) WindowInfo windowInfo; windowInfo.id = -1; windowInfo.pid = 11; - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); UDSServer udsServer; inputWindowsManager->udsServer_ = &udsServer; inputWindowsManager->mouseDownInfo_.id = 1; - inputWindowsManager->displayGroupInfo_.focusWindowId = 1; + displayGroupInfoRef.focusWindowId = 1; DisplayInfo displayInfo; displayInfo.id = 0; displayInfo.displayDirection = DIRECTION0; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + displayGroupInfoRef.displaysInfo.push_back(displayInfo); std::shared_ptr pointerEvent = PointerEvent::Create(); ASSERT_NE(pointerEvent, nullptr); PointerEvent::PointerItem item; pointerEvent->AddPointerItem(item); pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_AXIS_UPDATE); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->UpdateMouseTarget(pointerEvent)); - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); - inputWindowsManager->displayGroupInfo_.focusWindowId = -1; + displayGroupInfoRef.displaysInfo.clear(); + displayGroupInfoRef.focusWindowId = -1; inputWindowsManager->mouseDownInfo_.id = -1; inputWindowsManager->udsServer_ = nullptr; - inputWindowsManager->displayGroupInfo_.windowsInfo.clear(); + displayGroupInfoRef.windowsInfo.clear(); } /** @@ -1117,25 +1222,30 @@ HWTEST_F(InputWindowsManagerTest, UpdateMouseTarget_006, TestSize.Level1) WindowInfo windowInfo; windowInfo.id = -1; windowInfo.pid = 11; - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); UDSServer udsServer; inputWindowsManager->udsServer_ = &udsServer; inputWindowsManager->mouseDownInfo_.id = 1; - inputWindowsManager->displayGroupInfo_.focusWindowId = -1; + displayGroupInfoRef.focusWindowId = -1; DisplayInfo displayInfo; displayInfo.id = 0; displayInfo.displayDirection = DIRECTION0; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + displayGroupInfoRef.displaysInfo.push_back(displayInfo); std::shared_ptr pointerEvent = PointerEvent::Create(); ASSERT_NE(pointerEvent, nullptr); PointerEvent::PointerItem item; pointerEvent->AddPointerItem(item); pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_AXIS_UPDATE); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->UpdateMouseTarget(pointerEvent)); - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); inputWindowsManager->mouseDownInfo_.id = -1; inputWindowsManager->udsServer_ = nullptr; - inputWindowsManager->displayGroupInfo_.windowsInfo.clear(); + displayGroupInfoRef.windowsInfo.clear(); } /** @@ -1156,24 +1266,29 @@ HWTEST_F(InputWindowsManagerTest, UpdateMouseTarget_007, TestSize.Level1) WindowInfo windowInfo; windowInfo.id = -1; windowInfo.pid = 11; - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); UDSServer udsServer; inputWindowsManager->udsServer_ = &udsServer; inputWindowsManager->mouseDownInfo_.id = 1; DisplayInfo displayInfo; displayInfo.id = 0; displayInfo.displayDirection = DIRECTION0; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + displayGroupInfoRef.displaysInfo.push_back(displayInfo); std::shared_ptr pointerEvent = PointerEvent::Create(); ASSERT_NE(pointerEvent, nullptr); PointerEvent::PointerItem item; pointerEvent->AddPointerItem(item); pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_AXIS_UPDATE); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->UpdateMouseTarget(pointerEvent)); - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); inputWindowsManager->mouseDownInfo_.id = -1; inputWindowsManager->udsServer_ = nullptr; - inputWindowsManager->displayGroupInfo_.windowsInfo.clear(); + displayGroupInfoRef.windowsInfo.clear(); } /** @@ -1194,24 +1309,29 @@ HWTEST_F(InputWindowsManagerTest, UpdateMouseTarget_008, TestSize.Level1) WindowInfo windowInfo; windowInfo.id = -1; windowInfo.pid = 11; - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); UDSServer udsServer; inputWindowsManager->udsServer_ = &udsServer; inputWindowsManager->mouseDownInfo_.id = 1; DisplayInfo displayInfo; displayInfo.id = 0; displayInfo.displayDirection = DIRECTION0; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + displayGroupInfoRef.displaysInfo.push_back(displayInfo); std::shared_ptr pointerEvent = PointerEvent::Create(); ASSERT_NE(pointerEvent, nullptr); PointerEvent::PointerItem item; pointerEvent->AddPointerItem(item); pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_AXIS_UPDATE); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->UpdateMouseTarget(pointerEvent)); - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); inputWindowsManager->mouseDownInfo_.id = -1; inputWindowsManager->udsServer_ = nullptr; - inputWindowsManager->displayGroupInfo_.windowsInfo.clear(); + displayGroupInfoRef.windowsInfo.clear(); } /** @@ -1232,27 +1352,32 @@ HWTEST_F(InputWindowsManagerTest, UpdateMouseTarget_009, TestSize.Level1) WindowInfo windowInfo; windowInfo.id = -1; windowInfo.pid = 11; - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); UDSServer udsServer; inputWindowsManager->udsServer_ = &udsServer; inputWindowsManager->mouseDownInfo_.id = 1; inputWindowsManager->isUiExtension_ = true; - inputWindowsManager->displayGroupInfo_.focusWindowId = -1; + displayGroupInfoRef.focusWindowId = -1; DisplayInfo displayInfo; displayInfo.id = 0; displayInfo.displayDirection = DIRECTION0; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + displayGroupInfoRef.displaysInfo.push_back(displayInfo); std::shared_ptr pointerEvent = PointerEvent::Create(); ASSERT_NE(pointerEvent, nullptr); PointerEvent::PointerItem item; pointerEvent->AddPointerItem(item); pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_AXIS_UPDATE); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->UpdateMouseTarget(pointerEvent)); - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); inputWindowsManager->isUiExtension_ = false; inputWindowsManager->mouseDownInfo_.id = -1; inputWindowsManager->udsServer_ = nullptr; - inputWindowsManager->displayGroupInfo_.windowsInfo.clear(); + displayGroupInfoRef.windowsInfo.clear(); } /** @@ -1272,31 +1397,36 @@ HWTEST_F(InputWindowsManagerTest, UpdateMouseTarget_010, TestSize.Level1) WindowInfo windowInfo; windowInfo.id = -1; windowInfo.pid = 11; - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); UDSServer udsServer; inputWindowsManager->udsServer_ = &udsServer; inputWindowsManager->mouseDownInfo_.id = 1; inputWindowsManager->dragFlag_ = true; inputWindowsManager->isDragBorder_ = true; inputWindowsManager->isUiExtension_ = true; - inputWindowsManager->displayGroupInfo_.focusWindowId = -1; + displayGroupInfoRef.focusWindowId = -1; DisplayInfo displayInfo; displayInfo.id = 0; displayInfo.displayDirection = DIRECTION0; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + displayGroupInfoRef.displaysInfo.push_back(displayInfo); std::shared_ptr pointerEvent = PointerEvent::Create(); ASSERT_NE(pointerEvent, nullptr); PointerEvent::PointerItem item; pointerEvent->AddPointerItem(item); pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_BUTTON_DOWN); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->UpdateMouseTarget(pointerEvent)); - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); inputWindowsManager->dragFlag_ = false; inputWindowsManager->isDragBorder_ = false; inputWindowsManager->isUiExtension_ = false; inputWindowsManager->mouseDownInfo_.id = -1; inputWindowsManager->udsServer_ = nullptr; - inputWindowsManager->displayGroupInfo_.windowsInfo.clear(); + displayGroupInfoRef.windowsInfo.clear(); } /** @@ -1316,31 +1446,36 @@ HWTEST_F(InputWindowsManagerTest, UpdateMouseTarget_011, TestSize.Level1) WindowInfo windowInfo; windowInfo.id = -1; windowInfo.pid = 11; - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); UDSServer udsServer; inputWindowsManager->udsServer_ = &udsServer; inputWindowsManager->mouseDownInfo_.id = 1; inputWindowsManager->dragFlag_ = true; inputWindowsManager->isDragBorder_ = true; inputWindowsManager->isUiExtension_ = false; - inputWindowsManager->displayGroupInfo_.focusWindowId = -1; + displayGroupInfoRef.focusWindowId = -1; DisplayInfo displayInfo; displayInfo.id = 0; displayInfo.displayDirection = DIRECTION90; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + displayGroupInfoRef.displaysInfo.push_back(displayInfo); std::shared_ptr pointerEvent = PointerEvent::Create(); ASSERT_NE(pointerEvent, nullptr); PointerEvent::PointerItem item; pointerEvent->AddPointerItem(item); pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_BUTTON_UP); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->UpdateMouseTarget(pointerEvent)); - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); inputWindowsManager->dragFlag_ = false; inputWindowsManager->isDragBorder_ = false; inputWindowsManager->isUiExtension_ = false; inputWindowsManager->mouseDownInfo_.id = -1; inputWindowsManager->udsServer_ = nullptr; - inputWindowsManager->displayGroupInfo_.windowsInfo.clear(); + displayGroupInfoRef.windowsInfo.clear(); } /** @@ -1361,14 +1496,19 @@ HWTEST_F(InputWindowsManagerTest, UpdateMouseTarget_012, TestSize.Level1) windowInfo.id = -1; windowInfo.pid = 11; windowInfo.transform.push_back(1.1); - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); UDSServer udsServer; inputWindowsManager->udsServer_ = &udsServer; inputWindowsManager->mouseDownInfo_.id = 1; inputWindowsManager->dragFlag_ = true; inputWindowsManager->isDragBorder_ = true; inputWindowsManager->isUiExtension_ = false; - inputWindowsManager->displayGroupInfo_.focusWindowId = -1; + displayGroupInfoRef.focusWindowId = -1; inputWindowsManager->captureModeInfo_.isCaptureMode = true; inputWindowsManager->captureModeInfo_.windowId = 1; inputWindowsManager->extraData_.appended = true; @@ -1376,14 +1516,14 @@ HWTEST_F(InputWindowsManagerTest, UpdateMouseTarget_012, TestSize.Level1) DisplayInfo displayInfo; displayInfo.id = 0; displayInfo.displayDirection = DIRECTION90; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + displayGroupInfoRef.displaysInfo.push_back(displayInfo); std::shared_ptr pointerEvent = PointerEvent::Create(); ASSERT_NE(pointerEvent, nullptr); PointerEvent::PointerItem item; pointerEvent->AddPointerItem(item); pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_BUTTON_UP); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->UpdateMouseTarget(pointerEvent)); - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); inputWindowsManager->dragFlag_ = false; inputWindowsManager->isDragBorder_ = false; inputWindowsManager->isUiExtension_ = false; @@ -1391,7 +1531,7 @@ HWTEST_F(InputWindowsManagerTest, UpdateMouseTarget_012, TestSize.Level1) inputWindowsManager->captureModeInfo_.windowId = -1; inputWindowsManager->mouseDownInfo_.id = -1; inputWindowsManager->udsServer_ = nullptr; - inputWindowsManager->displayGroupInfo_.windowsInfo.clear(); + displayGroupInfoRef.windowsInfo.clear(); inputWindowsManager->extraData_.appended = false; inputWindowsManager->extraData_.sourceType = -1; } @@ -1414,14 +1554,19 @@ HWTEST_F(InputWindowsManagerTest, UpdateMouseTarget_013, TestSize.Level1) windowInfo.id = -1; windowInfo.pid = 11; windowInfo.transform.push_back(1.1); - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); UDSServer udsServer; inputWindowsManager->udsServer_ = &udsServer; inputWindowsManager->mouseDownInfo_.id = 1; inputWindowsManager->dragFlag_ = true; inputWindowsManager->isDragBorder_ = true; inputWindowsManager->isUiExtension_ = false; - inputWindowsManager->displayGroupInfo_.focusWindowId = -1; + displayGroupInfoRef.focusWindowId = -1; inputWindowsManager->captureModeInfo_.isCaptureMode = true; inputWindowsManager->captureModeInfo_.windowId = -1; inputWindowsManager->extraData_.appended = true; @@ -1429,21 +1574,21 @@ HWTEST_F(InputWindowsManagerTest, UpdateMouseTarget_013, TestSize.Level1) DisplayInfo displayInfo; displayInfo.id = 0; displayInfo.displayDirection = DIRECTION90; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + displayGroupInfoRef.displaysInfo.push_back(displayInfo); std::shared_ptr pointerEvent = PointerEvent::Create(); ASSERT_NE(pointerEvent, nullptr); PointerEvent::PointerItem item; pointerEvent->AddPointerItem(item); pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_PULL_UP); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->UpdateMouseTarget(pointerEvent)); - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); inputWindowsManager->dragFlag_ = false; inputWindowsManager->isDragBorder_ = false; inputWindowsManager->isUiExtension_ = false; inputWindowsManager->captureModeInfo_.isCaptureMode = false; inputWindowsManager->mouseDownInfo_.id = -1; inputWindowsManager->udsServer_ = nullptr; - inputWindowsManager->displayGroupInfo_.windowsInfo.clear(); + displayGroupInfoRef.windowsInfo.clear(); inputWindowsManager->extraData_.appended = false; inputWindowsManager->extraData_.sourceType = -1; } @@ -1466,14 +1611,19 @@ HWTEST_F(InputWindowsManagerTest, UpdateMouseTarget_014, TestSize.Level1) windowInfo.id = -1; windowInfo.pid = 11; windowInfo.transform.push_back(1.1); - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); UDSServer udsServer; inputWindowsManager->udsServer_ = &udsServer; inputWindowsManager->mouseDownInfo_.id = 1; inputWindowsManager->dragFlag_ = true; inputWindowsManager->isDragBorder_ = true; inputWindowsManager->isUiExtension_ = false; - inputWindowsManager->displayGroupInfo_.focusWindowId = -1; + displayGroupInfoRef.focusWindowId = -1; inputWindowsManager->captureModeInfo_.isCaptureMode = true; inputWindowsManager->captureModeInfo_.windowId = -1; inputWindowsManager->extraData_.appended = false; @@ -1481,21 +1631,21 @@ HWTEST_F(InputWindowsManagerTest, UpdateMouseTarget_014, TestSize.Level1) DisplayInfo displayInfo; displayInfo.id = 0; displayInfo.displayDirection = DIRECTION90; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + displayGroupInfoRef.displaysInfo.push_back(displayInfo); std::shared_ptr pointerEvent = PointerEvent::Create(); ASSERT_NE(pointerEvent, nullptr); PointerEvent::PointerItem item; pointerEvent->AddPointerItem(item); pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_PULL_UP); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->UpdateMouseTarget(pointerEvent)); - inputWindowsManager->displayGroupInfo_.displaysInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); inputWindowsManager->dragFlag_ = false; inputWindowsManager->isDragBorder_ = false; inputWindowsManager->isUiExtension_ = false; inputWindowsManager->captureModeInfo_.isCaptureMode = false; inputWindowsManager->mouseDownInfo_.id = -1; inputWindowsManager->udsServer_ = nullptr; - inputWindowsManager->displayGroupInfo_.windowsInfo.clear(); + displayGroupInfoRef.windowsInfo.clear(); } /** @@ -1593,12 +1743,17 @@ HWTEST_F(InputWindowsManagerTest, DispatchTouch_001, TestSize.Level1) windowInfo.id = 1; windowInfo.pid = 11; windowInfo.flags = 1; - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); int32_t pointerAction = PointerEvent::POINTER_ACTION_PULL_IN_WINDOW; EXPECT_NO_FATAL_FAILURE(inputWindowsManager->DispatchTouch(pointerAction)); inputWindowsManager->udsServer_ = nullptr; inputWindowsManager->lastTouchEvent_ = nullptr; - inputWindowsManager->displayGroupInfo_.windowsInfo.clear(); + displayGroupInfoRef.windowsInfo.clear(); } /** @@ -1628,14 +1783,19 @@ HWTEST_F(InputWindowsManagerTest, DispatchTouch_002, TestSize.Level1) rect.width = 10; rect.height = 10; windowInfo.defaultHotAreas.push_back(rect); - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); inputWindowsManager->lastTouchLogicX_ = 8; inputWindowsManager->lastTouchLogicY_ = 8; int32_t pointerAction = PointerEvent::POINTER_ACTION_PULL_IN_WINDOW; EXPECT_NO_FATAL_FAILURE(inputWindowsManager->DispatchTouch(pointerAction)); inputWindowsManager->udsServer_ = nullptr; inputWindowsManager->lastTouchEvent_ = nullptr; - inputWindowsManager->displayGroupInfo_.windowsInfo.clear(); + displayGroupInfoRef.windowsInfo.clear(); inputWindowsManager->lastTouchLogicX_ = -1; inputWindowsManager->lastTouchLogicY_ = -1; inputWindowsManager->lastTouchWindowInfo_.id = -1; @@ -1680,14 +1840,19 @@ HWTEST_F(InputWindowsManagerTest, DispatchTouch_003, TestSize.Level1) rect.width = 10; rect.height = 10; windowInfo.defaultHotAreas.push_back(rect); - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); inputWindowsManager->lastTouchLogicX_ = 8; inputWindowsManager->lastTouchLogicY_ = 8; int32_t pointerAction = PointerEvent::POINTER_ACTION_PULL_IN_WINDOW; EXPECT_NO_FATAL_FAILURE(inputWindowsManager->DispatchTouch(pointerAction)); inputWindowsManager->udsServer_ = nullptr; inputWindowsManager->lastTouchEvent_ = nullptr; - inputWindowsManager->displayGroupInfo_.windowsInfo.clear(); + displayGroupInfoRef.windowsInfo.clear(); inputWindowsManager->lastTouchLogicX_ = -1; inputWindowsManager->lastTouchLogicY_ = -1; } @@ -1727,14 +1892,19 @@ HWTEST_F(InputWindowsManagerTest, DispatchTouch_004, TestSize.Level1) rect.width = 10; rect.height = 10; windowInfo.defaultHotAreas.push_back(rect); - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); inputWindowsManager->lastTouchLogicX_ = 8; inputWindowsManager->lastTouchLogicY_ = 8; int32_t pointerAction = PointerEvent::POINTER_ACTION_PULL_OUT_WINDOW; EXPECT_NO_FATAL_FAILURE(inputWindowsManager->DispatchTouch(pointerAction)); inputWindowsManager->udsServer_ = nullptr; inputWindowsManager->lastTouchEvent_ = nullptr; - inputWindowsManager->displayGroupInfo_.windowsInfo.clear(); + displayGroupInfoRef.windowsInfo.clear(); inputWindowsManager->lastTouchLogicX_ = -1; inputWindowsManager->lastTouchLogicY_ = -1; } @@ -1774,14 +1944,19 @@ HWTEST_F(InputWindowsManagerTest, DispatchTouch_005, TestSize.Level1) rect.width = 10; rect.height = 10; windowInfo.defaultHotAreas.push_back(rect); - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); inputWindowsManager->lastTouchLogicX_ = 8; inputWindowsManager->lastTouchLogicY_ = 8; int32_t pointerAction = PointerEvent::POINTER_ACTION_PULL_OUT_WINDOW; EXPECT_NO_FATAL_FAILURE(inputWindowsManager->DispatchTouch(pointerAction)); inputWindowsManager->udsServer_ = nullptr; inputWindowsManager->lastTouchEvent_ = nullptr; - inputWindowsManager->displayGroupInfo_.windowsInfo.clear(); + displayGroupInfoRef.windowsInfo.clear(); inputWindowsManager->lastTouchLogicX_ = -1; inputWindowsManager->lastTouchLogicY_ = -1; } @@ -2485,7 +2660,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_IsNeedRefreshLayer_006 displayInfo.id = 2; displayInfo.x = 2; displayInfo.y = 3; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); ret = inputWindowsManager->IsNeedRefreshLayer(windowId); EXPECT_FALSE(ret); windowId = 5; @@ -2715,22 +2895,27 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_TouchPointToDisplayPoi DisplayInfo displayInfo; displayInfo.width = -1; displayInfo.height = 3; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->TouchPointToDisplayPoint (deviceId, &touch, touchInfo, physicalDisplayId)); displayInfo.width = 3; displayInfo.height = -1; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->TouchPointToDisplayPoint (deviceId, &touch, touchInfo, physicalDisplayId)); displayInfo.width = -5; displayInfo.height = -6; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->TouchPointToDisplayPoint (deviceId, &touch, touchInfo, physicalDisplayId)); displayInfo.width = 3; displayInfo.height = 2; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->TouchPointToDisplayPoint (deviceId, &touch, touchInfo, physicalDisplayId)); } @@ -2779,7 +2964,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_FoldScreenRotation_001 pointerEvent->SetPointerId(1); pointerEvent->SetTargetDisplayId(10); pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_TOUCHSCREEN); - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); inputWindowsManager->touchItemDownInfos_.insert(std::make_pair(1, winInfoEx)); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->FoldScreenRotation(pointerEvent)); } @@ -2805,7 +2995,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_FoldScreenRotation_002 pointerEvent->SetPointerId(1); pointerEvent->SetTargetDisplayId(10); pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_UNKNOWN); - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); inputWindowsManager->touchItemDownInfos_.insert(std::make_pair(1, winInfoEx)); inputWindowsManager->lastDirection_ = std::make_pair(10, static_cast(-1)); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->FoldScreenRotation(pointerEvent)); @@ -2834,7 +3029,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_FoldScreenRotation_003 pointerEvent->SetTargetDisplayId(10); pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_MOUSE); inputWindowsManager.lastDirection_ = std::make_pair(10, DIRECTION0); - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager.FoldScreenRotation(pointerEvent)); } @@ -2862,7 +3062,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_FoldScreenRotation_004 pointerEvent->SetTargetDisplayId(10); pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_MOUSE); inputWindowsManager.lastDirection_ = std::make_pair(10, DIRECTION0); - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager.FoldScreenRotation(pointerEvent)); } @@ -2891,7 +3096,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_FoldScreenRotation_005 pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_MOUSE); pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_DOWN); inputWindowsManager.lastDirection_ = std::make_pair(10, DIRECTION0); - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager.FoldScreenRotation(pointerEvent)); } @@ -2922,7 +3132,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_FoldScreenRotation_006 pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_TOUCHSCREEN); pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_MOVE); inputWindowsManager.lastDirection_ = std::make_pair(10, DIRECTION0); - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); inputWindowsManager.touchItemDownInfos_.insert(std::make_pair(1, winInfoEx)); EXPECT_NO_FATAL_FAILURE(inputWindowsManager.FoldScreenRotation(pointerEvent)); } @@ -2954,7 +3169,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_FoldScreenRotation_007 pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_UNKNOWN); pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_MOVE); inputWindowsManager.lastDirection_ = std::make_pair(10, DIRECTION0); - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); inputWindowsManager.touchItemDownInfos_.insert(std::make_pair(1, winInfoEx)); EXPECT_NO_FATAL_FAILURE(inputWindowsManager.FoldScreenRotation(pointerEvent)); } @@ -2986,7 +3206,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_FoldScreenRotation_008 pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_UNKNOWN); pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_MOVE); inputWindowsManager.lastDirection_ = std::make_pair(10, DIRECTION0); - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); inputWindowsManager.touchItemDownInfos_.insert(std::make_pair(1, winInfoEx)); EXPECT_NO_FATAL_FAILURE(inputWindowsManager.FoldScreenRotation(pointerEvent)); } @@ -3014,7 +3239,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_FoldScreenRotation_009 pointerEvent->SetTargetDisplayId(10); pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_UNKNOWN); inputWindowsManager.lastDirection_ = std::make_pair(10, DIRECTION90); - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager.FoldScreenRotation(pointerEvent)); } @@ -3034,7 +3264,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_RotateScreen, TestSize info.height = 500; coord.x = 200; info.direction = DIRECTION0; - inputWindowsManager.cursorPos_.direction = DIRECTION90; + CursorPosition cursorPosRef; + auto it = inputWindowsManager.cursorPosMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.cursorPosMap_.end()) { + cursorPosRef = it->second; + } + cursorPosRef.direction = DIRECTION90; EXPECT_NO_FATAL_FAILURE(inputWindowsManager.RotateScreen(info, coord)); } @@ -3054,7 +3289,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_RotateScreen_001, Test info.width = 500; coord.y = 200; info.direction = DIRECTION0; - inputWindowsManager.cursorPos_.direction = DIRECTION270; + CursorPosition cursorPosRef; + auto it = inputWindowsManager.cursorPosMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.cursorPosMap_.end()) { + cursorPosRef = it->second; + } + cursorPosRef.direction = DIRECTION270; EXPECT_NO_FATAL_FAILURE(inputWindowsManager.RotateScreen(info, coord)); } @@ -3089,19 +3329,24 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_RotateScreen_003, Test info.direction = DIRECTION0; info.displayDirection = DIRECTION0; - inputWindowsManager.cursorPos_.displayDirection = DIRECTION270; + CursorPosition cursorPosRef; + auto it = inputWindowsManager.cursorPosMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.cursorPosMap_.end()) { + cursorPosRef = it->second; + } + cursorPosRef.direction = DIRECTION270; EXPECT_NO_FATAL_FAILURE(inputWindowsManager.RotateScreen(info, coord)); info.displayDirection = DIRECTION0; - inputWindowsManager.cursorPos_.displayDirection = DIRECTION0; + cursorPosRef.displayDirection = DIRECTION0; info.direction = DIRECTION0; - inputWindowsManager.cursorPos_.direction = DIRECTION270; + cursorPosRef.direction = DIRECTION270; EXPECT_NO_FATAL_FAILURE(inputWindowsManager.RotateScreen(info, coord)); info.displayDirection = DIRECTION0; - inputWindowsManager.cursorPos_.displayDirection = DIRECTION0; + cursorPosRef.displayDirection = DIRECTION0; info.direction = DIRECTION0; - inputWindowsManager.cursorPos_.direction = DIRECTION0; + cursorPosRef.direction = DIRECTION0; EXPECT_NO_FATAL_FAILURE(inputWindowsManager.RotateScreen(info, coord)); } @@ -3119,9 +3364,14 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_RotateScreen_004, Test InputWindowsManager inputWindowsManager; info.displayDirection = DIRECTION0; - inputWindowsManager.cursorPos_.displayDirection = DIRECTION0; + CursorPosition cursorPosRef; + auto it = inputWindowsManager.cursorPosMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.cursorPosMap_.end()) { + cursorPosRef = it->second; + } + cursorPosRef.displayDirection = DIRECTION0; info.direction = DIRECTION0; - inputWindowsManager.cursorPos_.direction = DIRECTION0; + cursorPosRef.direction = DIRECTION0; EXPECT_NO_FATAL_FAILURE(inputWindowsManager.RotateScreen(info, coord)); } @@ -3140,9 +3390,14 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_RotateScreen_005, Test InputWindowsManager inputWindowsManager; info.displayDirection = DIRECTION0; - inputWindowsManager.cursorPos_.displayDirection = DIRECTION0; + CursorPosition cursorPosRef; + auto it = inputWindowsManager.cursorPosMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.cursorPosMap_.end()) { + cursorPosRef = it->second; + } + cursorPosRef.displayDirection = DIRECTION0; info.direction = DIRECTION90; - inputWindowsManager.cursorPos_.direction = DIRECTION90; + cursorPosRef.direction = DIRECTION90; EXPECT_NO_FATAL_FAILURE(inputWindowsManager.RotateScreen(info, coord)); } @@ -3161,7 +3416,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_RotateScreen_006, Test InputWindowsManager inputWindowsManager; info.displayDirection = DIRECTION0; - inputWindowsManager.cursorPos_.displayDirection = DIRECTION0; + CursorPosition cursorPosRef; + auto it = inputWindowsManager.cursorPosMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.cursorPosMap_.end()) { + cursorPosRef = it->second; + } + cursorPosRef.displayDirection = DIRECTION0; info.direction = DIRECTION270; inputWindowsManager.cursorPos_.direction = DIRECTION270; @@ -3410,8 +3670,13 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_IsNeedRefreshLayer, Te inputWindowsManager.mouseLocation_.physicalX = 100; inputWindowsManager.mouseLocation_.physicalY = 100; winInfo.pointerHotAreas.push_back({ 100, 100, 1000, 1000 }); - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); - inputWindowsManager.displayGroupInfo_.windowsInfo.push_back(winInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); + displayGroupInfoRef.windowsInfo.push_back(winInfo); EXPECT_TRUE(inputWindowsManager.IsNeedRefreshLayer(windowId)); } @@ -3440,8 +3705,13 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_IsNeedRefreshLayer_007 inputWindowsManager.mouseLocation_.physicalX = 100; inputWindowsManager.mouseLocation_.physicalY = 100; winInfo.pointerHotAreas.push_back({ 100, 100, 1000, 1000 }); - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); - inputWindowsManager.displayGroupInfo_.windowsInfo.push_back(winInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); + displayGroupInfoRef.windowsInfo.push_back(winInfo); EXPECT_TRUE(inputWindowsManager.IsNeedRefreshLayer(windowId)); } @@ -3470,8 +3740,13 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_IsNeedRefreshLayer_008 inputWindowsManager.mouseLocation_.physicalX = 100; inputWindowsManager.mouseLocation_.physicalY = 100; winInfo.pointerHotAreas.push_back({ 100, 100, 1000, 1000 }); - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); - inputWindowsManager.displayGroupInfo_.windowsInfo.push_back(winInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); + displayGroupInfoRef.windowsInfo.push_back(winInfo); EXPECT_FALSE(inputWindowsManager.IsNeedRefreshLayer(windowId)); } @@ -3499,8 +3774,13 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_IsNeedRefreshLayer_009 inputWindowsManager.mouseLocation_.physicalX = 100; inputWindowsManager.mouseLocation_.physicalY = 100; winInfo.pointerHotAreas.push_back({ 100, 100, INT32_MAX, 1000 }); - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); - inputWindowsManager.displayGroupInfo_.windowsInfo.push_back(winInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); + displayGroupInfoRef.windowsInfo.push_back(winInfo); EXPECT_FALSE(inputWindowsManager.IsNeedRefreshLayer(windowId)); } @@ -3519,9 +3799,19 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_AdjustDisplayRotation, DisplayInfo displayInfo; displayInfo.id = 100; displayInfo.direction = DIRECTION90; - inputWindowsManager->cursorPos_.displayId = 100; - inputWindowsManager->cursorPos_.direction = DIRECTION0; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + CursorPosition cursorPosRef; + auto it = inputWindowsManager->cursorPosMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->cursorPosMap_.end()) { + cursorPosRef = it->second; + } + cursorPosRef.displayId = 100; + cursorPosRef.direction = Direction::DIRECTION0; + DisplayGroupInfo displayGroupInfoRef; + auto iter = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (iter != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = iter->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->AdjustDisplayRotation()); } @@ -3540,9 +3830,19 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_AdjustDisplayRotation_ DisplayInfo displayInfo; displayInfo.id = 100; displayInfo.direction = DIRECTION90; - inputWindowsManager->cursorPos_.displayId = 100; - inputWindowsManager->cursorPos_.direction = DIRECTION90; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + CursorPosition cursorPosRef; + auto it = inputWindowsManager->cursorPosMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->cursorPosMap_.end()) { + cursorPosRef = it->second; + } + cursorPosRef.displayId = 100; + cursorPosRef.direction = Direction::DIRECTION90; + DisplayGroupInfo displayGroupInfoRef; + auto iter = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (iter != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = iter->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->AdjustDisplayRotation()); } @@ -3580,7 +3880,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_TouchPointToDisplayPoi displayInfo.id = 100; displayInfo.uniq = "uniq"; displayInfo.width = -1; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_FALSE(inputWindowsManager.TouchPointToDisplayPoint(deviceId, &touch, touchInfo, physicalDisplayId)); } @@ -3605,7 +3910,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_TouchPointToDisplayPoi displayInfo.uniq = "uniq"; displayInfo.width = 100; displayInfo.height = -1; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_FALSE(inputWindowsManager.TouchPointToDisplayPoint(deviceId, &touch, touchInfo, physicalDisplayId)); } @@ -3632,7 +3942,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_TouchPointToDisplayPoi displayInfo.height = 100; displayInfo.validWidth = displayInfo.width; displayInfo.validHeight = displayInfo.height; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_FALSE(inputWindowsManager.TouchPointToDisplayPoint(deviceId, &touch, touchInfo, physicalDisplayId)); } @@ -3972,7 +4287,12 @@ HWTEST_F(InputWindowsManagerTest, DrawTouchGraphic_004, TestSize.Level1) DisplayInfo displayInfo; displayInfo.id = 10; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); inputWindowsManager->knuckleDrawMgr_ = nullptr; inputWindowsManager->knuckleDynamicDrawingManager_ = nullptr; @@ -4036,7 +4356,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_SendUIExtentionPointer DisplayInfo displayInfo; displayInfo.id = 10; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->SendUIExtentionPointerEvent (logicalX, logicalY, windowInfo, pointerEvent)); @@ -4077,7 +4402,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_SendUIExtentionPointer DisplayInfo displayInfo; displayInfo.id = 10; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->SendUIExtentionPointerEvent (logicalX, logicalY, windowInfo, pointerEvent)); @@ -4110,7 +4440,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_SelectWindowInfo_003, windowInfo.id = 1; windowInfo.pid = 11; windowInfo.isSkipSelfWhenShowOnVirtualScreen = true; - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->SelectWindowInfo(logicalX, logicalY, pointerEvent)); } diff --git a/service/window_manager/test/input_windows_manager_one_test.cpp b/service/window_manager/test/input_windows_manager_one_test.cpp index 8aff791778940d81225917691e8895cfed665b23..14ebed343513330067a740120d4076337010a506 100644 --- a/service/window_manager/test/input_windows_manager_one_test.cpp +++ b/service/window_manager/test/input_windows_manager_one_test.cpp @@ -119,7 +119,12 @@ HWTEST_F(InputWindowsManagerOneTest, InputWindowsManagerOneTest_ScreenRotateAdju coord.x = 1; coord.y = 0; std::shared_ptr inputWindowsManager = std::make_shared(); - inputWindowsManager->cursorPos_.direction = Direction::DIRECTION0; + CursorPosition cursorPosRef; + auto it = inputWindowsManager->cursorPosMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->cursorPosMap_.end()) { + cursorPosRef = it->second; + } + cursorPosRef.direction = Direction::DIRECTION0; NiceMock mockInputWindowsManager; EXPECT_CALL(mockInputWindowsManager, IsSceneBoardEnabled) .WillOnce(Return(false)) @@ -130,13 +135,13 @@ HWTEST_F(InputWindowsManagerOneTest, InputWindowsManagerOneTest_ScreenRotateAdju coord.x = 1; coord.y = 0; info.direction = DIRECTION0; - inputWindowsManager->cursorPos_.direction = Direction::DIRECTION180; + cursorPosRef.direction = Direction::DIRECTION180; EXPECT_NO_FATAL_FAILURE(inputWindowsManager->ScreenRotateAdjustDisplayXY(info, coord)); coord.x = 1; coord.y = 0; info.direction = DIRECTION0; - inputWindowsManager->cursorPos_.direction = Direction::DIRECTION90; + cursorPosRef.direction = Direction::DIRECTION90; EXPECT_NO_FATAL_FAILURE(inputWindowsManager->ScreenRotateAdjustDisplayXY(info, coord)); } @@ -158,8 +163,13 @@ HWTEST_F(InputWindowsManagerOneTest, InputWindowsManagerOneTest_RotateScreen_001 coord.x = 1; coord.y = 0; std::shared_ptr inputWindowsManager = std::make_shared(); - inputWindowsManager->cursorPos_.direction = Direction::DIRECTION90; - inputWindowsManager->cursorPos_.displayDirection = Direction::DIRECTION90; + CursorPosition cursorPosRef; + auto it = inputWindowsManager->cursorPosMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->cursorPosMap_.end()) { + cursorPosRef = it->second; + } + cursorPosRef.direction = Direction::DIRECTION90; + cursorPosRef.displayDirection = Direction::DIRECTION90; std::shared_ptr pointerEvent = PointerEvent::Create(); ASSERT_NE(pointerEvent, nullptr); pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_MOUSE); @@ -169,12 +179,12 @@ HWTEST_F(InputWindowsManagerOneTest, InputWindowsManagerOneTest_RotateScreen_001 coord.x = 0; coord.y = 1; - inputWindowsManager->cursorPos_.direction = Direction::DIRECTION270; + cursorPosRef.direction = Direction::DIRECTION270; EXPECT_NO_FATAL_FAILURE(inputWindowsManager->RotateScreen(info, coord)); coord.x = 0; coord.y = 1; - inputWindowsManager->cursorPos_.direction = Direction::DIRECTION180; + cursorPosRef.direction = Direction::DIRECTION180; EXPECT_NO_FATAL_FAILURE(inputWindowsManager->RotateScreen(info, coord)); } @@ -196,8 +206,13 @@ HWTEST_F(InputWindowsManagerOneTest, InputWindowsManagerOneTest_RotateScreen_002 coord.x = 1; coord.y = 0; std::shared_ptr inputWindowsManager = std::make_shared(); - inputWindowsManager->cursorPos_.direction = Direction::DIRECTION90; - inputWindowsManager->cursorPos_.displayDirection = Direction::DIRECTION90; + CursorPosition cursorPosRef; + auto it = inputWindowsManager->cursorPosMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->cursorPosMap_.end()) { + cursorPosRef = it->second; + } + cursorPosRef.direction = Direction::DIRECTION90; + cursorPosRef.displayDirection = Direction::DIRECTION90; std::shared_ptr pointerEvent = PointerEvent::Create(); ASSERT_NE(pointerEvent, nullptr); pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_UNKNOWN); @@ -349,7 +364,12 @@ HWTEST_F(InputWindowsManagerOneTest, InputWindowsManagerOneTest_SelectWindowInfo windowInfo.id = 1; windowInfo.windowInputType = WindowInputType::TRANSMIT_ANTI_AXIS_MOVE; std::shared_ptr inputWindowsManager = std::make_shared(); - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); inputWindowsManager->firstBtnDownWindowInfo_.first = -1; std::unique_ptr pixelMap = nullptr; inputWindowsManager->transparentWins_.insert_or_assign(windowInfo.id, std::move(pixelMap)); @@ -380,7 +400,12 @@ HWTEST_F(InputWindowsManagerOneTest, InputWindowsManagerOneTest_SelectWindowInfo windowInfo.windowInputType = WindowInputType::NORMAL; windowInfo.isSkipSelfWhenShowOnVirtualScreen = true; std::shared_ptr inputWindowsManager = std::make_shared(); - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); inputWindowsManager->firstBtnDownWindowInfo_.first = -1; inputWindowsManager->isOpenPrivacyProtectionserver_ = true; inputWindowsManager->privacyProtection_.isOpen = true; @@ -416,7 +441,12 @@ HWTEST_F(InputWindowsManagerOneTest, InputWindowsManagerOneTest_SelectWindowInfo windowInfo.windowInputType = WindowInputType::MIX_LEFT_RIGHT_ANTI_AXIS_MOVE; windowInfo.isSkipSelfWhenShowOnVirtualScreen = true; std::shared_ptr inputWindowsManager = std::make_shared(); - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); inputWindowsManager->firstBtnDownWindowInfo_.first = -1; inputWindowsManager->isOpenPrivacyProtectionserver_ = true; inputWindowsManager->privacyProtection_.isOpen = false; @@ -454,7 +484,12 @@ HWTEST_F(InputWindowsManagerOneTest, InputWindowsManagerOneTest_SelectWindowInfo windowInfo.windowInputType = WindowInputType::NORMAL; windowInfo.isSkipSelfWhenShowOnVirtualScreen = true; std::shared_ptr inputWindowsManager = std::make_shared(); - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); inputWindowsManager->firstBtnDownWindowInfo_.first = -1; inputWindowsManager->isOpenPrivacyProtectionserver_ = true; inputWindowsManager->privacyProtection_.isOpen = false; @@ -493,7 +528,12 @@ HWTEST_F(InputWindowsManagerOneTest, InputWindowsManagerOneTest_SelectWindowInfo windowInfo.windowInputType = WindowInputType::MIX_LEFT_RIGHT_ANTI_AXIS_MOVE; windowInfo.isSkipSelfWhenShowOnVirtualScreen = true; std::shared_ptr inputWindowsManager = std::make_shared(); - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); inputWindowsManager->firstBtnDownWindowInfo_.first = -1; inputWindowsManager->isOpenPrivacyProtectionserver_ = true; inputWindowsManager->privacyProtection_.isOpen = false; @@ -517,8 +557,8 @@ HWTEST_F(InputWindowsManagerOneTest, InputWindowsManagerOneTest_SelectWindowInfo winInfo.id = 50; winInfo.defaultHotAreas.push_back(rect); windowInfo.uiExtentionWindowInfo.push_back(winInfo); - inputWindowsManager->displayGroupInfo_.windowsInfo.clear(); - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + displayGroupInfoRef.windowsInfo.clear(); + displayGroupInfoRef.windowsInfo.push_back(windowInfo); std::optional result1 = inputWindowsManager->SelectWindowInfo(logicalX, logicalY, pointerEvent); EXPECT_TRUE(result1.has_value()); } @@ -550,7 +590,12 @@ HWTEST_F(InputWindowsManagerOneTest, InputWindowsManagerOneTest_SelectWindowInfo windowInfo.isSkipSelfWhenShowOnVirtualScreen = true; windowInfo.uiExtentionWindowInfo.clear(); std::shared_ptr inputWindowsManager = std::make_shared(); - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); inputWindowsManager->firstBtnDownWindowInfo_.first = -1; inputWindowsManager->isOpenPrivacyProtectionserver_ = true; inputWindowsManager->privacyProtection_.isOpen = false; @@ -590,7 +635,12 @@ HWTEST_F(InputWindowsManagerOneTest, InputWindowsManagerOneTest_SelectWindowInfo windowInfo.isSkipSelfWhenShowOnVirtualScreen = true; windowInfo.uiExtentionWindowInfo.clear(); std::shared_ptr inputWindowsManager = std::make_shared(); - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); inputWindowsManager->firstBtnDownWindowInfo_.first = -1; inputWindowsManager->isOpenPrivacyProtectionserver_ = true; inputWindowsManager->privacyProtection_.isOpen = false; @@ -627,7 +677,12 @@ HWTEST_F(InputWindowsManagerOneTest, InputWindowsManagerOneTest_SelectWindowInfo windowInfo.id = 1; info.uiExtentionWindowInfo.push_back(windowInfo); std::shared_ptr inputWindowsManager = std::make_shared(); - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(info); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); inputWindowsManager->extraData_.appended = false; inputWindowsManager->firstBtnDownWindowInfo_.first = 1; WindowInfo beginWindowInfo; @@ -661,7 +716,12 @@ HWTEST_F(InputWindowsManagerOneTest, InputWindowsManagerOneTest_SelectWindowInfo windowInfo.id = 0; info.uiExtentionWindowInfo.push_back(windowInfo); std::shared_ptr inputWindowsManager = std::make_shared(); - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(info); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); inputWindowsManager->extraData_.appended = false; inputWindowsManager->firstBtnDownWindowInfo_.first = 1; inputWindowsManager->firstBtnDownWindowInfo_.second = -1; @@ -1079,7 +1139,12 @@ HWTEST_F(InputWindowsManagerOneTest, InputWindowsManagerOneTest_DispatchTouch_00 windowInfo.id = 1; windowInfo.flags = 0; windowInfo.windowInputType = WindowInputType::MIX_LEFT_RIGHT_ANTI_AXIS_MOVE; - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->DispatchTouch(pointerAction)); } @@ -1160,7 +1225,12 @@ HWTEST_F(InputWindowsManagerOneTest, InputWindowsManagerOneTest_FindPhysicalDisp displayInfo1.id = 0; displayInfo1.dpi = -10; displayInfo1.uniq = "default0"; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo1); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo1); displayInfo.id = 1; displayInfo.x = INT32_MAX; @@ -1341,7 +1411,12 @@ HWTEST_F(InputWindowsManagerOneTest, InputWindowsManagerOneTest_GetPidByWindowId WindowInfo winInfo; winInfo.id = id; windowInfo.uiExtentionWindowInfo.push_back(winInfo); - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); EXPECT_EQ(inputWindowsManager->GetPidByWindowId(id), windowInfo.pid); id = -1; diff --git a/service/window_manager/test/input_windows_manager_test.cpp b/service/window_manager/test/input_windows_manager_test.cpp index 282378ff26c7a78233867a0b886691273af72bf8..161cf9ba757c2b11d7905907827c8a07e3eaf483 100644 --- a/service/window_manager/test/input_windows_manager_test.cpp +++ b/service/window_manager/test/input_windows_manager_test.cpp @@ -167,7 +167,11 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_GetClientFd_001, TestS auto pointerEvent = PointerEvent::Create(); UDSServer udsServer; WIN_MGR->Init(udsServer); - WIN_MGR->GetDisplayGroupInfo(); + DisplayGroupInfo displayGroupInfo; + displayGroupInfo.width = 20; + displayGroupInfo.height = 20; + displayGroupInfo.focusWindowId = 1; + WIN_MGR->GetDisplayGroupInfo(displayGroupInfo); int32_t idNames = -1; ASSERT_EQ(WIN_MGR->GetClientFd(pointerEvent), idNames); } @@ -722,12 +726,17 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_PrintDisplayInfo_001, { CALL_TEST_DEBUG; InputWindowsManager manager; - manager.displayGroupInfo_.width = 1920; - manager.displayGroupInfo_.height = 1080; - manager.displayGroupInfo_.focusWindowId = 1; - manager.displayGroupInfo_.windowsInfo.push_back(WindowInfo()); - manager.displayGroupInfo_.displaysInfo.push_back(DisplayInfo()); - ASSERT_NO_FATAL_FAILURE(WIN_MGR->PrintDisplayGroupInfo(manager.displayGroupInfo_)); + DisplayGroupInfo displayGroupInfoRef; + auto it = manager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != manager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.width = 1920; + displayGroupInfoRef.height = 1080; + displayGroupInfoRef.focusWindowId = 1; + displayGroupInfoRef.windowsInfo.push_back(WindowInfo()); + displayGroupInfoRef.displaysInfo.push_back(DisplayInfo()); + ASSERT_NO_FATAL_FAILURE(WIN_MGR->PrintDisplayGroupInfo(displayGroupInfoRef)); } /** @@ -772,11 +781,16 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_FindPhysicalDisplayInf ASSERT_EQ(manager.FindPhysicalDisplayInfo("test"), nullptr); DisplayInfo info1; info1.id = 123; - manager.displayGroupInfo_.displaysInfo.push_back(info1); + DisplayGroupInfo displayGroupInfoRef; + auto it = manager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != manager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(info1); ASSERT_NE(manager.FindPhysicalDisplayInfo("test"), nullptr); DisplayInfo info2; info2.id = 456; - manager.displayGroupInfo_.displaysInfo.push_back(info2); + displayGroupInfoRef.displaysInfo.push_back(info2); ASSERT_NE(manager.FindPhysicalDisplayInfo("test"), nullptr); ASSERT_NE(manager.FindPhysicalDisplayInfo("not_matching"), nullptr); ASSERT_NE(manager.FindPhysicalDisplayInfo("nonexistent"), nullptr); @@ -897,7 +911,11 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_OnSessionLost_001, Tes CALL_TEST_DEBUG; SessionPtr session = std::shared_ptr(); WIN_MGR->OnSessionLost(session); - ASSERT_NO_FATAL_FAILURE(WIN_MGR->GetDisplayGroupInfo()); + DisplayGroupInfo displayGroupInfo; + displayGroupInfo.width = 20; + displayGroupInfo.height = 20; + displayGroupInfo.focusWindowId = 1; + ASSERT_NO_FATAL_FAILURE(WIN_MGR->GetDisplayGroupInfo(displayGroupInfo)); } /** @@ -2141,13 +2159,18 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_GetCursorPos_001, Test CALL_TEST_DEBUG; InputWindowsManager manager; manager.cursorPos_.displayId = -1; - manager.displayGroupInfo_.displaysInfo.push_back({0, 800, 600}); + DisplayGroupInfo displayGroupInfoRef; + auto it = manager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != manager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back({0, 800, 600}); CursorPosition result = WIN_MGR->GetCursorPos(); EXPECT_EQ(result.displayId, 1); EXPECT_EQ(result.cursorPos.x, 1); EXPECT_EQ(result.cursorPos.y, 1); manager.cursorPos_.displayId = 1; - manager.displayGroupInfo_.displaysInfo.push_back({1, 800, 600}); + displayGroupInfoRef.displaysInfo.push_back({1, 800, 600}); result = WIN_MGR->GetCursorPos(); EXPECT_EQ(result.displayId, 1); EXPECT_EQ(result.cursorPos.x, 1); @@ -2164,12 +2187,17 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_ResetCursorPos_001, Te { CALL_TEST_DEBUG; InputWindowsManager manager; - manager.displayGroupInfo_.displaysInfo.push_back({1, 800, 600}); + DisplayGroupInfo displayGroupInfoRef; + auto it = manager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != manager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back({1, 800, 600}); CursorPosition result = WIN_MGR->ResetCursorPos(); EXPECT_EQ(result.displayId, 1); EXPECT_EQ(result.cursorPos.x, 1); EXPECT_EQ(result.cursorPos.y, 1); - manager.displayGroupInfo_.displaysInfo.clear(); + displayGroupInfoRef.displaysInfo.clear(); result = WIN_MGR->ResetCursorPos(); EXPECT_EQ(result.displayId, 1); EXPECT_EQ(result.cursorPos.x, 1); @@ -2772,7 +2800,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_CheckFocusWindowChange InputWindowsManager inputWindowsManager; DisplayGroupInfo displayGroupInfo; displayGroupInfo.focusWindowId = 1; - inputWindowsManager.displayGroupInfo_.focusWindowId = 1; + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.focusWindowId = -1; EXPECT_NO_FATAL_FAILURE(inputWindowsManager.CheckFocusWindowChange(displayGroupInfo)); } @@ -2804,10 +2837,15 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateCaptureMode, Tes DisplayGroupInfo displayGroupInfo; WindowInfo windowInfo; inputWindowsManager.captureModeInfo_.isCaptureMode = true; - inputWindowsManager.displayGroupInfo_.focusWindowId = 25; + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.focusWindowId = 25; displayGroupInfo.focusWindowId = 25; windowInfo.id = 10; - inputWindowsManager.displayGroupInfo_.windowsInfo.push_back(windowInfo); + displayGroupInfoRef.windowsInfo.push_back(windowInfo); windowInfo.id = 11; displayGroupInfo.windowsInfo.push_back(windowInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager.UpdateCaptureMode(displayGroupInfo)); @@ -2856,7 +2894,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateDisplayMode, Tes DisplayInfo displayInfo; displayInfo.displayMode = DisplayMode::FULL; inputWindowsManager.displayMode_ = DisplayMode::FULL; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager.UpdateDisplayMode()); inputWindowsManager.displayMode_ = DisplayMode::MAIN; FINGERSENSE_WRAPPER->sendFingerSenseDisplayMode_ = nullptr; @@ -2878,10 +2921,15 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_GetPhysicalDisplay, Te InputWindowsManager inputWindowsManager; int32_t id = 1; DisplayInfo displayInfo; + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } displayInfo.id = 0; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + displayGroupInfoRef.displaysInfo.push_back(displayInfo); displayInfo.id = 1; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_NE(inputWindowsManager.GetPhysicalDisplay(id), nullptr); } @@ -2898,7 +2946,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_FindPhysicalDisplayInf DisplayInfo displayInfo; std::string uniq = "uniq_test"; displayInfo.uniq = "uniq_test"; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_NE(inputWindowsManager.FindPhysicalDisplayInfo(uniq), nullptr); } @@ -2957,10 +3010,15 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdatePoinerStyle, Tes WindowInfo windowInfo; windowInfo.id = 3; windowInfo.pid = 6; - inputWindowsManager.displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); windowInfo.id = 2; windowInfo.pid = 1; - inputWindowsManager.displayGroupInfo_.windowsInfo.push_back(windowInfo); + displayGroupInfoRef.windowsInfo.push_back(windowInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager.UpdatePoinerStyle(pid, windowId, pointerStyle)); } @@ -3099,7 +3157,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateDisplayId, TestS int32_t displayId = -1; DisplayInfo displayInfo; displayInfo.id = 10; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_TRUE(inputWindowsManager.UpdateDisplayId(displayId)); EXPECT_TRUE(inputWindowsManager.UpdateDisplayId(displayId)); displayId = 15; @@ -3150,7 +3213,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_GetWindowInfo, TestSiz int32_t logicalY = 200; WindowInfo windowInfo; windowInfo.flags = 1; - inputWindowsManager.displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); EXPECT_EQ(inputWindowsManager.GetWindowInfo(logicalX, logicalY), std::nullopt); } @@ -3231,7 +3299,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateMouseTarget, Tes DisplayInfo displayInfo; displayInfo.id = 1; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); pointerEvent->SetPointerId(5); PointerEvent::PointerItem item; item.SetPointerId(10); @@ -3272,14 +3345,19 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateJoystickTarget, { CALL_TEST_DEBUG; InputWindowsManager inputWindowsManager; - inputWindowsManager.displayGroupInfo_.focusWindowId = 150; + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.focusWindowId = 150; std::shared_ptr pointerEvent = PointerEvent::Create(); ASSERT_NE(pointerEvent, nullptr); pointerEvent->SetTargetDisplayId(-1); WindowInfo windowInfo; windowInfo.id = 150; windowInfo.agentWindowId = 200; - inputWindowsManager.displayGroupInfo_.windowsInfo.push_back(windowInfo); + displayGroupInfoRef.windowsInfo.push_back(windowInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager.UpdateJoystickTarget(pointerEvent)); } @@ -3302,7 +3380,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateAndAdjustMouseLo displayInfo.width = 500; displayInfo.height = 500; displayInfo.displayDirection = DIRECTION0; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager.UpdateAndAdjustMouseLocation(displayId, x, y, isRealData)); isRealData = false; EXPECT_NO_FATAL_FAILURE(inputWindowsManager.UpdateAndAdjustMouseLocation(displayId, x, y, isRealData)); @@ -3323,7 +3406,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_GetMouseInfo, TestSize displayInfo.id = 1; displayInfo.width = 600; displayInfo.height = 600; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_EQ(inputWindowsManager.GetMouseInfo().displayId, displayInfo.id); } @@ -3342,7 +3430,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_GetCursorPos, TestSize displayInfo.id = 1; displayInfo.width = 300; displayInfo.height = 300; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_EQ(inputWindowsManager.GetCursorPos().displayId, displayInfo.id); } @@ -3360,7 +3453,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_ResetCursorPos, TestSi displayInfo.id = 1; displayInfo.width = 300; displayInfo.height = 300; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_EQ(inputWindowsManager.ResetCursorPos().displayId, displayInfo.id); } @@ -3396,7 +3494,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_CheckWindowIdPermissio WindowInfo windowInfo; windowInfo.id = 300; windowInfo.pid = 500; - inputWindowsManager.displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); EXPECT_EQ(inputWindowsManager.CheckWindowIdPermissionByPid(windowId, pid), RET_OK); } @@ -3429,7 +3532,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_FindPhysicalDisplay_00 EXPECT_EQ(logicalY, physicalY + displayInfo.y); displaysInfo.x = 100; displaysInfo.width = INT32_MAX; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displaysInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displaysInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager.FindPhysicalDisplay(displayInfo, physicalX, physicalY, displayId)); } @@ -3460,16 +3568,21 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_FindPhysicalDisplay_00 EXPECT_EQ(logicalY, physicalY + displayInfo.y); displaysInfo.x = 200; displaysInfo.width = 100; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displaysInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displaysInfo); inputWindowsManager.FindPhysicalDisplay(displayInfo, physicalX, physicalY, displayId); EXPECT_EQ(displayMaxX, displaysInfo.x + displaysInfo.width); displaysInfo.y = 100; displaysInfo.height = INT32_MAX; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displaysInfo); + displayGroupInfoRef.displaysInfo.push_back(displaysInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager.FindPhysicalDisplay(displayInfo, physicalX, physicalY, displayId)); displaysInfo.y = 200; displaysInfo.height = 200; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displaysInfo); + displayGroupInfoRef.displaysInfo.push_back(displaysInfo); inputWindowsManager.FindPhysicalDisplay(displayInfo, physicalX, physicalY, displayId); EXPECT_EQ(displayMaxY, displaysInfo.y + displaysInfo.height); } @@ -3565,7 +3678,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_DispatchPointer, TestS WindowInfo windowInfo; windowInfo.flags = WindowInfo::FLAG_BIT_HANDWRITING; windowInfo.pointerHotAreas.push_back({ 100, 0, INT32_MAX, 0 }); - inputWindowsManager.displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); inputWindowsManager.lastLogicX_ = 200; inputWindowsManager.lastLogicY_ = 200; EXPECT_NO_FATAL_FAILURE(inputWindowsManager.DispatchPointer(pointerAction)); @@ -3597,7 +3715,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_DispatchPointer_002, T inputWindowsManager.lastPointerEvent_->SetTargetDisplayId(-1); WindowInfo windowInfo; windowInfo.id = 1; - inputWindowsManager.displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); inputWindowsManager.lastWindowInfo_.id = 2; inputWindowsManager.lastWindowInfo_.agentWindowId = 2; inputWindowsManager.lastWindowInfo_.area.x = 100; @@ -3633,13 +3756,18 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_NotifyPointerToWindow, WindowInfo windowInfo; windowInfo.flags = WindowInfo::FLAG_BIT_HANDWRITING; windowInfo.pointerHotAreas.push_back({ 100, 100, INT32_MAX, 100 }); - inputWindowsManager.displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager.NotifyPointerToWindow()); windowInfo.id = 10; windowInfo.pointerHotAreas.clear(); windowInfo.pointerHotAreas.push_back({ 150, 250, 300, 500 }); - inputWindowsManager.displayGroupInfo_.windowsInfo.insert( - inputWindowsManager.displayGroupInfo_.windowsInfo.begin(), windowInfo); + displayGroupInfoRef.windowsInfo.insert( + displayGroupInfoRef.windowsInfo.begin(), windowInfo); inputWindowsManager.lastWindowInfo_.id = 10; EXPECT_NO_FATAL_FAILURE(inputWindowsManager.NotifyPointerToWindow()); inputWindowsManager.lastWindowInfo_.id = 20; @@ -3652,7 +3780,7 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_NotifyPointerToWindow, inputWindowsManager.lastWindowInfo_.id = 30; EXPECT_NO_FATAL_FAILURE(inputWindowsManager.NotifyPointerToWindow()); windowInfo.id = 50; - inputWindowsManager.displayGroupInfo_.windowsInfo.push_back(windowInfo); + displayGroupInfoRef.windowsInfo.push_back(windowInfo); inputWindowsManager.lastWindowInfo_.id = 50; EXPECT_NO_FATAL_FAILURE(inputWindowsManager.NotifyPointerToWindow()); } @@ -3677,7 +3805,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_GetMouseInfo_002, Test displaysInfo.validHeight = displaysInfo.height; displaysInfo.name = "name1"; displaysInfo.uniq = "uniq1"; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displaysInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displaysInfo); MouseLocation result = inputWindowsManager.GetMouseInfo(); EXPECT_EQ(result.displayId, 2); EXPECT_EQ(result.physicalX, 10); @@ -3704,7 +3837,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_GetCursorPos_002, Test displaysInfo.validHeight = displaysInfo.height; displaysInfo.name = "name2"; displaysInfo.uniq = "uniq2"; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displaysInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displaysInfo); CursorPosition result = inputWindowsManager.GetCursorPos(); EXPECT_EQ(result.displayId, 2); EXPECT_EQ(result.cursorPos.x, 15); @@ -3731,7 +3869,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_ResetCursorPos_002, Te displaysInfo.validHeight = displaysInfo.height; displaysInfo.name = "name3"; displaysInfo.uniq = "uniq3"; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displaysInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displaysInfo); result = inputWindowsManager.ResetCursorPos(); EXPECT_EQ(result.displayId, 3); EXPECT_EQ(result.cursorPos.x, 20); @@ -3751,7 +3894,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateDisplayIdAndName DisplayInfo displaysInfo; displaysInfo.id = 1; displaysInfo.uniq = "abc"; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displaysInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displaysInfo); inputWindowsManager.bindInfo_.AddDisplay(2, "cde"); EXPECT_NO_FATAL_FAILURE(inputWindowsManager.UpdateDisplayIdAndName()); } @@ -3769,7 +3917,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateDisplayIdAndName DisplayInfo displaysInfo; displaysInfo.id = 1; displaysInfo.uniq = "abc"; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displaysInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displaysInfo); inputWindowsManager.bindInfo_.AddDisplay(1, "abc"); EXPECT_NO_FATAL_FAILURE(inputWindowsManager.UpdateDisplayIdAndName()); } @@ -3789,7 +3942,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_SendPointerEvent, Test WindowInfo windowInfo; inputWindowsManager.udsServer_ = &udsServer; windowInfo.pointerHotAreas.push_back({ 100, 100, INT32_MAX, 100 }); - inputWindowsManager.displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager.SendPointerEvent(pointerAction)); windowInfo.pointerHotAreas.clear(); windowInfo.pointerHotAreas.push_back({ 150, 250, 300, 500 }); @@ -3798,8 +3956,8 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_SendPointerEvent, Test windowInfo.id = 10; windowInfo.pid = 30; windowInfo.agentWindowId = 10; - inputWindowsManager.displayGroupInfo_.windowsInfo.insert( - inputWindowsManager.displayGroupInfo_.windowsInfo.begin(), windowInfo); + displayGroupInfoRef.windowsInfo.insert( + displayGroupInfoRef.windowsInfo.begin(), windowInfo); inputWindowsManager.mouseLocation_.displayId = 1; inputWindowsManager.mouseLocation_.physicalX = 200; inputWindowsManager.mouseLocation_.physicalY = 300; @@ -3826,7 +3984,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateMouseTarget001, displayInfo.id = 1; displayInfo.x = 300; displayInfo.y = 500; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); PointerEvent::PointerItem item; item.SetPointerId(1); item.SetDisplayX(INT32_MAX); @@ -3882,7 +4045,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateMouseTarget_002, displayInfo.height = 100; displayInfo.displayDirection = DIRECTION0; displayInfo.direction = DIRECTION180; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); PointerEvent::PointerItem item; item.SetPointerId(1); item.SetDisplayX(150); @@ -3938,7 +4106,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateMouseTarget_003, displayInfo.width = 100; displayInfo.height = 100; displayInfo.displayDirection = DIRECTION180; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); PointerEvent::PointerItem item; item.SetPointerId(1); item.SetDisplayX(150); @@ -3993,7 +4166,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateTouchScreenTarge displayInfo.displayDirection = DIRECTION0; displayInfo.x = INT32_MAX; displayInfo.y = 300; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); PointerEvent::PointerItem item; item.SetPointerId(1); item.SetDisplayX(100); @@ -4009,8 +4187,8 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateTouchScreenTarge EXPECT_EQ(inputWindowsManager.UpdateTouchScreenTarget(pointerEvent), RET_ERR); pointerEvent->bitwise_ = InputEvent::EVENT_FLAG_NONE; - inputWindowsManager.displayGroupInfo_.displaysInfo[0].x = 300; - inputWindowsManager.displayGroupInfo_.displaysInfo[0].y = INT32_MAX; + displayGroupInfoRef.displaysInfo[0].x = 300; + displayGroupInfoRef.displaysInfo[0].y = INT32_MAX; EXPECT_EQ(inputWindowsManager.UpdateTouchScreenTarget(pointerEvent), RET_ERR); } @@ -4027,7 +4205,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_GetPidAndUpdateTarget_ std::shared_ptr keyEvent = KeyEvent::Create(); ASSERT_NE(keyEvent, nullptr); keyEvent->SetTargetDisplayId(10); - inputWindowsManager.displayGroupInfo_.focusWindowId = 52; + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.focusWindowId = 52; WindowGroupInfo windowGroupInfo; WindowInfo windowInfo; windowInfo.id = 2; @@ -4060,14 +4243,19 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateAndAdjustMouseLo displayInfo.y = 600; displayInfo.width = 300; displayInfo.height = 300; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); displayInfo.id = 2; displayInfo.x = 500; displayInfo.y = 500; displayInfo.width = 600; displayInfo.height = 600; displayInfo.displayDirection = DIRECTION0; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager.UpdateAndAdjustMouseLocation(displayId, x, y, isRealData)); } @@ -4092,9 +4280,14 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateAndAdjustMouseLo displayInfo.width = 400; displayInfo.height = 400; displayInfo.displayDirection = DIRECTION90; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager.UpdateAndAdjustMouseLocation(displayId, x, y, isRealData)); - inputWindowsManager.displayGroupInfo_.displaysInfo[0].displayDirection = DIRECTION0; + displayGroupInfoRef.displaysInfo[0].displayDirection = DIRECTION0; EXPECT_NO_FATAL_FAILURE(inputWindowsManager.UpdateAndAdjustMouseLocation(displayId, x, y, isRealData)); } @@ -4206,7 +4399,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_ReverseXY, TestSize.Le displayInfo.direction = DIRECTION0; displayInfo.width = 200; displayInfo.height = 300; - inputWindowsMgr.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsMgr.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsMgr.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsMgr.ReverseXY(x, y)); } @@ -4254,7 +4452,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_PrintChangedWindowBySy windowInfo.id = 1; windowInfo.pid = 50; windowInfo.zOrder = 60; - inputWindowsMgr.displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsMgr.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsMgr.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); windowInfo.id = 2; newDisplayInfo.windowsInfo.push_back(windowInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsMgr.PrintChangedWindowBySync(newDisplayInfo)); @@ -4304,7 +4507,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_GetPidAndUpdateTarget_ InputWindowsManager inputWindowsManager; std::shared_ptr keyEvent = KeyEvent::Create(); ASSERT_NE(keyEvent, nullptr); - inputWindowsManager.displayGroupInfo_.focusWindowId = 10; + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.focusWindowId = 10; std::shared_ptr inputEvent = InputEvent::Create(); EXPECT_NE(inputEvent, nullptr); inputEvent->targetDisplayId_ = 10; @@ -4417,13 +4625,18 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateCrownTarget_001, std::shared_ptr inputEvent = InputEvent::Create(); EXPECT_NE(inputEvent, nullptr); inputEvent->targetDisplayId_ = -1; - inputWindowsManager.displayGroupInfo_.focusWindowId = -1; + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.focusWindowId = -1; int32_t ret = inputWindowsManager.UpdateCrownTarget(pointerEvent); EXPECT_NE(ret, RET_OK); inputEvent->targetDisplayId_ = 5; ret = inputWindowsManager.UpdateCrownTarget(pointerEvent); EXPECT_NE(ret, RET_OK); - inputWindowsManager.displayGroupInfo_.focusWindowId = 5; + displayGroupInfoRef.focusWindowId = 5; ret = inputWindowsManager.UpdateCrownTarget(pointerEvent); EXPECT_NE(ret, RET_OK); } @@ -5106,7 +5319,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateTouchScreenTarge inputWindowsMgr.extraData_.pointerId = 150; inputWindowsMgr.extraData_.sourceType = PointerEvent::SOURCE_TYPE_TOUCHSCREEN; pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_DOWN); - inputWindowsMgr.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsMgr.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsMgr.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); inputWindowsMgr.windowsPerDisplay_.insert(std::make_pair(100, winGroupInfo)); EXPECT_NO_FATAL_FAILURE(inputWindowsMgr.UpdateTouchScreenTarget(pointerEvent)); } @@ -5160,7 +5378,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateTouchScreenTarge inputWindowsMgr.extraData_.appended = false; inputWindowsMgr.extraData_.sourceType = PointerEvent::SOURCE_TYPE_MOUSE; pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_UNKNOWN); - inputWindowsMgr.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsMgr.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsMgr.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); inputWindowsMgr.windowsPerDisplay_.insert(std::make_pair(100, winGroupInfo)); EXPECT_NO_FATAL_FAILURE(inputWindowsMgr.UpdateTouchScreenTarget(pointerEvent)); } @@ -5236,7 +5459,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateTouchScreenTarge pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_TOUCHSCREEN); inputWindowsMgr.isOpenAntiMisTakeObserver_ = false; inputWindowsMgr.antiMistake_.isOpen = true; - inputWindowsMgr.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsMgr.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsMgr.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); inputWindowsMgr.windowsPerDisplay_.insert(std::make_pair(100, winGroupInfo)); EXPECT_NO_FATAL_FAILURE(inputWindowsMgr.UpdateTouchScreenTarget(pointerEvent)); } @@ -5283,7 +5511,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateTouchScreenTarge inputWindowsMgr.extraData_.sourceType = PointerEvent::SOURCE_TYPE_TOUCHSCREEN; inputWindowsMgr.isOpenAntiMisTakeObserver_ = true; inputWindowsMgr.antiMistake_.isOpen = false; - inputWindowsMgr.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsMgr.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsMgr.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); inputWindowsMgr.windowsPerDisplay_.insert(std::make_pair(100, winGroupInfo)); EXPECT_NO_FATAL_FAILURE(inputWindowsMgr.UpdateTouchScreenTarget(pointerEvent)); } @@ -5326,7 +5559,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateTouchScreenTarge winGroupInfo.windowsInfo.push_back(winInfo); pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_UNKNOWN); inputWindowsMgr.extraData_.appended = false; - inputWindowsMgr.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsMgr.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsMgr.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); inputWindowsMgr.windowsPerDisplay_.insert(std::make_pair(100, winGroupInfo)); EXPECT_NO_FATAL_FAILURE(inputWindowsMgr.UpdateTouchScreenTarget(pointerEvent)); } @@ -5371,7 +5609,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateTouchScreenTarge winGroupInfo.windowsInfo.push_back(winInfo); pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_UNKNOWN); inputWindowsMgr.extraData_.appended = false; - inputWindowsMgr.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsMgr.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsMgr.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); inputWindowsMgr.windowsPerDisplay_.insert(std::make_pair(100, winGroupInfo)); EXPECT_NO_FATAL_FAILURE(inputWindowsMgr.UpdateTouchScreenTarget(pointerEvent)); } @@ -5414,7 +5657,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateTouchScreenTarge winGroupInfo.windowsInfo.push_back(winInfo); pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_UNKNOWN); inputWindowsMgr.extraData_.appended = false; - inputWindowsMgr.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsMgr.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsMgr.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); inputWindowsMgr.windowsPerDisplay_.insert(std::make_pair(100, winGroupInfo)); EXPECT_NO_FATAL_FAILURE(inputWindowsMgr.UpdateTouchScreenTarget(pointerEvent)); } @@ -5460,7 +5708,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateTouchScreenTarge pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_DOWN); inputWindowsMgr.lastTouchEventOnBackGesture_->SetPointerAction(PointerEvent::POINTER_ACTION_CANCEL); inputWindowsMgr.extraData_.appended = false; - inputWindowsMgr.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsMgr.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsMgr.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); inputWindowsMgr.windowsPerDisplay_.insert(std::make_pair(100, winGroupInfo)); EXPECT_NO_FATAL_FAILURE(inputWindowsMgr.UpdateTouchScreenTarget(pointerEvent)); } @@ -5506,7 +5759,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateTouchScreenTarge pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_UNKNOWN); inputWindowsMgr.lastTouchEventOnBackGesture_->SetPointerAction(PointerEvent::POINTER_ACTION_DOWN); inputWindowsMgr.extraData_.appended = false; - inputWindowsMgr.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsMgr.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsMgr.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); inputWindowsMgr.windowsPerDisplay_.insert(std::make_pair(100, winGroupInfo)); EXPECT_NO_FATAL_FAILURE(inputWindowsMgr.UpdateTouchScreenTarget(pointerEvent)); } @@ -5552,7 +5810,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateTouchScreenTarge pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_UNKNOWN); inputWindowsMgr.lastTouchEventOnBackGesture_->SetPointerAction(PointerEvent::POINTER_ACTION_CANCEL); inputWindowsMgr.extraData_.appended = false; - inputWindowsMgr.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsMgr.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsMgr.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); inputWindowsMgr.windowsPerDisplay_.insert(std::make_pair(100, winGroupInfo)); EXPECT_NO_FATAL_FAILURE(inputWindowsMgr.UpdateTouchScreenTarget(pointerEvent)); } @@ -5598,7 +5861,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateTouchScreenTarge pointerEvent->SetPointerAction(PointerEvent::POINTER_ACTION_UNKNOWN); inputWindowsMgr.lastTouchEventOnBackGesture_->SetPointerAction(PointerEvent::POINTER_ACTION_CANCEL); inputWindowsMgr.extraData_.appended = false; - inputWindowsMgr.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsMgr.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsMgr.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); inputWindowsMgr.windowsPerDisplay_.insert(std::make_pair(100, winGroupInfo)); EXPECT_NO_FATAL_FAILURE(inputWindowsMgr.UpdateTouchScreenTarget(pointerEvent)); } @@ -5737,17 +6005,22 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_HandleKeyEventWindowId ASSERT_NE(keyEvent, nullptr); WindowInfo winInfo; keyEvent->SetTargetDisplayId(-1); - inputWindowsMgr.displayGroupInfo_.focusWindowId = 50; + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsMgr.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsMgr.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.focusWindowId = 50; winInfo.id = 50; winInfo.agentWindowId = 100; winInfo.privacyMode = SecureFlag::PRIVACY_MODE; - inputWindowsMgr.displayGroupInfo_.windowsInfo.push_back(winInfo); + displayGroupInfoRef.windowsInfo.push_back(winInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsMgr.HandleKeyEventWindowId(keyEvent)); - inputWindowsMgr.displayGroupInfo_.windowsInfo[0].privacyMode = SecureFlag::DEFAULT_MODE; + displayGroupInfoRef.windowsInfo[0].privacyMode = SecureFlag::DEFAULT_MODE; EXPECT_NO_FATAL_FAILURE(inputWindowsMgr.HandleKeyEventWindowId(keyEvent)); - inputWindowsMgr.displayGroupInfo_.focusWindowId = 80; + displayGroupInfoRef.focusWindowId = 80; EXPECT_NO_FATAL_FAILURE(inputWindowsMgr.HandleKeyEventWindowId(keyEvent)); } @@ -5766,7 +6039,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_GetDisplayId, TestSize DisplayInfo displayInfo; displayInfo.id = 100; inputEvent->SetTargetDisplayId(-1); - inputWindowsMgr.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsMgr.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsMgr.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsMgr.GetDisplayId(inputEvent)); } @@ -5793,7 +6071,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_GetClientFd_004, TestS winInfo.uiExtentionWindowInfo.push_back(winInfo); winInfo.pid = 50; winInfo.flags = 15; - inputWindowsMgr.displayGroupInfo_.windowsInfo.push_back(winInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsMgr.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsMgr.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(winInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsMgr.GetClientFd(pointerEvent, windowId)); windowId = 100; EXPECT_NO_FATAL_FAILURE(inputWindowsMgr.GetClientFd(pointerEvent, windowId)); @@ -5819,11 +6102,16 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_GetPidAndUpdateTarget, winInfo.privacyUIFlag = true; winInfo.uiExtentionWindowInfo.push_back(winInfo); keyEvent->SetTargetDisplayId(-1); - inputWindowsMgr.displayGroupInfo_.focusWindowId = 10; - inputWindowsMgr.displayGroupInfo_.windowsInfo.push_back(winInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsMgr.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsMgr.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.focusWindowId = 10; + displayGroupInfoRef.windowsInfo.push_back(winInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsMgr.GetPidAndUpdateTarget(keyEvent)); - inputWindowsMgr.displayGroupInfo_.windowsInfo[0].uiExtentionWindowInfo[0].privacyUIFlag = false; + displayGroupInfoRef.windowsInfo[0].uiExtentionWindowInfo[0].privacyUIFlag = false; EXPECT_NO_FATAL_FAILURE(inputWindowsMgr.GetPidAndUpdateTarget(keyEvent)); } @@ -5912,7 +6200,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_DispatchUIExtentionPoi winInfo.agentWindowId = 200; winInfo.uiExtentionWindowInfo.push_back(winInfo); winInfo.id = 300; - inputWindowsMgr.displayGroupInfo_.windowsInfo.push_back(winInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsMgr.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsMgr.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(winInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsMgr.DispatchUIExtentionPointerEvent(logicalX, logicalY, pointerEvent)); } @@ -5959,13 +6252,18 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateCrownTarget, Tes std::shared_ptr pointerEvent = PointerEvent::Create(); ASSERT_NE(pointerEvent, nullptr); pointerEvent->SetTargetDisplayId(-1); - inputWindowsMgr.displayGroupInfo_.focusWindowId = 100; + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsMgr.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsMgr.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.focusWindowId = 100; winInfo.id = 200; - inputWindowsMgr.displayGroupInfo_.windowsInfo.push_back(winInfo); + displayGroupInfoRef.windowsInfo.push_back(winInfo); winInfo.id = 100; winInfo.agentWindowId = 500; winInfo.privacyMode = SecureFlag::DEFAULT_MODE; - inputWindowsMgr.displayGroupInfo_.windowsInfo.push_back(winInfo); + displayGroupInfoRef.windowsInfo.push_back(winInfo); EXPECT_EQ(inputWindowsMgr.UpdateCrownTarget(pointerEvent), RET_OK); } #endif // OHOS_BUILD_ENABLE_POINTER && OHOS_BUILD_ENABLE_CROWN @@ -6057,9 +6355,14 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_ReverseXY_001, TestSiz int32_t y = 100; DisplayInfo displayInfo; displayInfo.direction = static_cast(-1); - inputWindowsMgr.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsMgr.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsMgr.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsMgr.ReverseXY(x, y)); - inputWindowsMgr.displayGroupInfo_.displaysInfo[0].direction = static_cast(10); + displayGroupInfoRef.displaysInfo[0].direction = static_cast(10); EXPECT_NO_FATAL_FAILURE(inputWindowsMgr.ReverseXY(x, y)); } @@ -6110,11 +6413,16 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_DispatchPointerCancel, inputWindowsMgr.lastPointerEvent_ = PointerEvent::Create(); ASSERT_NE(inputWindowsMgr.lastPointerEvent_, nullptr); winInfo.id = 10; - inputWindowsMgr.displayGroupInfo_.windowsInfo.push_back(winInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsMgr.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsMgr.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(winInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsMgr.DispatchPointerCancel(displayId)); - inputWindowsMgr.displayGroupInfo_.windowsInfo.clear(); + displayGroupInfoRef.windowsInfo.clear(); winInfo.id = 100; - inputWindowsMgr.displayGroupInfo_.windowsInfo.push_back(winInfo); + displayGroupInfoRef.windowsInfo.push_back(winInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsMgr.DispatchPointerCancel(displayId)); } @@ -6132,7 +6440,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_GetPidByWindowId, Test WindowInfo winInfo; winInfo.id = 100; winInfo.pid = 150; - inputWindowsMgr.displayGroupInfo_.windowsInfo.push_back(winInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsMgr.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsMgr.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(winInfo); EXPECT_EQ(inputWindowsMgr.GetPidByWindowId(id), winInfo.pid); id = 300; EXPECT_EQ(inputWindowsMgr.GetPidByWindowId(id), RET_ERR); @@ -6355,7 +6668,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateKeyEventDisplayI EXPECT_EQ(keyEvent->GetTargetDisplayId(), 1); DisplayInfo info1 = {.id = 0, .x = 0, .y = 0, .width = 100, .height = 200}; - inputWindowsManager.displayGroupInfo_.displaysInfo.emplace_back(info1); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.emplace_back(info1); inputWindowsManager.UpdateKeyEventDisplayId(keyEvent, focusWindowId); EXPECT_EQ(keyEvent->GetTargetDisplayId(), 0); } @@ -6376,7 +6694,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_OnDisplayRemovedOrComb DisplayInfo info1 = {.id = 0, .x = 0, .y = 0, .width = 100, .height = 200}; DisplayInfo info2 = {.id = 1, .x = 100, .y = 0, .width = 100, .height = 200}; - inputWindowsManager.displayGroupInfo_.displaysInfo = {info1, info2}; + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo = {info1, info2}; displayGroupInfo.displaysInfo = {info2}; ret = inputWindowsManager.OnDisplayRemovedOrCombinationChanged(displayGroupInfo); EXPECT_TRUE(ret); @@ -6620,7 +6943,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_CleanInvalidPiexMap, T winInfo.id = 10; std::unique_ptr pixelMap = nullptr; inputWindowsManager.transparentWins_.insert_or_assign(windowId, std::move(pixelMap)); - inputWindowsManager.displayGroupInfo_.windowsInfo.push_back(winInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(winInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager.CleanInvalidPiexMap()); } @@ -6639,7 +6967,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_CleanInvalidPiexMap_00 winInfo.id = 10; std::unique_ptr pixelMap = nullptr; inputWindowsManager.transparentWins_.insert_or_assign(windowId, std::move(pixelMap)); - inputWindowsManager.displayGroupInfo_.windowsInfo.push_back(winInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(winInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager.CleanInvalidPiexMap()); } @@ -6807,9 +7140,14 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_SelectWindowInfo_004, inputWindowsManager.extraData_.appended = true; inputWindowsManager.extraData_.sourceType = PointerEvent::SOURCE_TYPE_MOUSE; windowInfo.uiExtentionWindowInfo.push_back(windowInfo); - inputWindowsManager.displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); windowInfo.windowInputType = WindowInputType::NORMAL; - inputWindowsManager.displayGroupInfo_.windowsInfo.push_back(windowInfo); + displayGroupInfoRef.windowsInfo.push_back(windowInfo); inputWindowsManager.firstBtnDownWindowInfo_.first = 150; inputWindowsManager.transparentWins_.insert_or_assign(windowId, std::move(pixelMap)); EXPECT_NE(inputWindowsManager.SelectWindowInfo(logicalX, logicalY, pointerEvent), std::nullopt); @@ -6850,7 +7188,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_SelectWindowInfo_005, inputWindowsManager.extraData_.appended = false; inputWindowsManager.extraData_.sourceType = PointerEvent::SOURCE_TYPE_UNKNOWN; windowInfo.uiExtentionWindowInfo.push_back(windowInfo); - inputWindowsManager.displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); inputWindowsManager.transparentWins_.insert_or_assign(windowId, std::move(pixelMap)); EXPECT_EQ(inputWindowsManager.SelectWindowInfo(logicalX, logicalY, pointerEvent), std::nullopt); pointerEvent->SetButtonPressed(2024); @@ -6996,8 +7339,13 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_JudgeCaramaInFore_001, WindowInfo windowInfo; windowInfo.id = 20; - inputWindowsManager.displayGroupInfo_.windowsInfo.push_back(windowInfo); - inputWindowsManager.displayGroupInfo_.focusWindowId = 20; + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); + displayGroupInfoRef.focusWindowId = 20; EXPECT_EQ(inputWindowsManager.JudgeCaramaInFore(), false); } @@ -7269,7 +7617,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_GetClientFd_010, TestS WindowInfo windowInfo1; windowInfo1.id = 1; windowInfo1.uiExtentionWindowInfo.push_back(windowInfo1); - inputWindowsManager.displayGroupInfo_.windowsInfo.push_back(windowInfo1); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo1); EXPECT_NO_FATAL_FAILURE(inputWindowsManager.GetClientFd(pointerEvent)); } @@ -7292,8 +7645,13 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_GetClientFd_011, TestS WindowInfo windowInfo1; windowInfo1.id = 1; - windowInfo1.uiExtentionWindowInfo.push_back(windowInfo1); - inputWindowsManager.displayGroupInfo_.windowsInfo.push_back(windowInfo1); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo1); + displayGroupInfoRef.windowsInfo.push_back(windowInfo1); EXPECT_NO_FATAL_FAILURE(inputWindowsManager.GetClientFd(pointerEvent)); } @@ -7354,7 +7712,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_GetWindowPid_002, Test WindowInfo windowInfo2; windowInfo2.id = 1; windowInfo1.uiExtentionWindowInfo.push_back(windowInfo2); - inputWindowsManager.displayGroupInfo_.windowsInfo.push_back(windowInfo1); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo1); EXPECT_NO_FATAL_FAILURE(inputWindowsManager.GetWindowPid(windowId)); } @@ -7375,7 +7738,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_GetWindowPid_003, Test WindowInfo windowInfo2; windowInfo2.id = 3; windowInfo1.uiExtentionWindowInfo.push_back(windowInfo2); - inputWindowsManager.displayGroupInfo_.windowsInfo.push_back(windowInfo1); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo1); EXPECT_NO_FATAL_FAILURE(inputWindowsManager.GetWindowPid(windowId)); } @@ -7608,7 +7976,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_ResetPointerPositionIf InputWindowsManager inputWindowsManager; inputWindowsManager.cursorPos_.displayId = 1; inputWindowsManager.cursorPos_.cursorPos.x = -1; - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); // isOut = true, isChange = false EXPECT_NO_FATAL_FAILURE(inputWindowsManager.ResetPointerPositionIfOutValidDisplay(displayGroupInfo)); @@ -7631,8 +8004,8 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_ResetPointerPositionIf displayGroupInfo.displaysInfo.clear(); displayInfo.offsetX = 0; displayGroupInfo.displaysInfo.push_back(displayInfo); - inputWindowsManager.displayGroupInfo_.displaysInfo.clear(); - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + displayGroupInfoRef.displaysInfo.clear(); + displayGroupInfoRef.displaysInfo.push_back(displayInfo); // isOut = false, isChange = false EXPECT_NO_FATAL_FAILURE(inputWindowsManager.ResetPointerPositionIfOutValidDisplay(displayGroupInfo)); } @@ -7728,7 +8101,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_CancelTouchScreenEvent pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_TOUCHSCREEN); inputWindowsManager.lastPointerEventforGesture_ = pointerEvent; inputWindowsManager.lastPointerEventforGesture_->SetTargetDisplayId(displayInfo.id); - inputWindowsManager.displayGroupInfo_.displaysInfo.push_back(displayInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); // true false EXPECT_NO_FATAL_FAILURE(inputWindowsManager.CancelTouchScreenEventIfValidDisplayChange(displayGroupInfo)); @@ -8175,7 +8553,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_CancelAllTouches_003, WindowInfo windowInfo; windowInfo.id = 0; - inputWindowsManager.displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager.displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager.displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager.CancelAllTouches(pointerEvent)); } #endif // OHOS_BUILD_ENABLE_POINTER || OHOS_BUILD_ENABLE_TOUCH @@ -8569,10 +8952,15 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateCaptureMode_003, DisplayGroupInfo displayGroupInfo; WindowInfo windowInfo; inputWindowsManager->captureModeInfo_.isCaptureMode = true; - inputWindowsManager->displayGroupInfo_.focusWindowId = 25; + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.focusWindowId = 25; displayGroupInfo.focusWindowId = 26; windowInfo.id = 10; - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + displayGroupInfoRef.windowsInfo.push_back(windowInfo); displayGroupInfo.windowsInfo.push_back(windowInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->UpdateCaptureMode(displayGroupInfo)); @@ -8632,7 +9020,13 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_PointerDrawingManagerO displayInfo.dpi++; displayInfo.x = 300; displayInfo.y = 300; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displayInfo); + inputWindowsManager->lastDpi_ = displayInfo.dpi + 1; + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displayInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->PointerDrawingManagerOnDisplayInfo(displayGroupInfo)); } @@ -8654,7 +9048,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdatePointerDrawingMa DisplayInfo displaysInfo; inputWindowsManager->lastPointerEvent_->SetPointerAction(PointerEvent::POINTER_ACTION_UNKNOWN); inputWindowsManager->lastPointerEvent_->SetButtonPressed(1); - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displaysInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displaysInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->UpdatePointerDrawingManagerWindowInfo()); } @@ -8672,7 +9071,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdatePointerDrawingMa EXPECT_NE(inputWindowsManager->lastPointerEvent_, nullptr); DisplayInfo displaysInfo; inputWindowsManager->lastPointerEvent_->SetPointerAction(PointerEvent::POINTER_ACTION_UNKNOWN); - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displaysInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displaysInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->UpdatePointerDrawingManagerWindowInfo()); } @@ -8690,7 +9094,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdatePointerDrawingMa EXPECT_NE(inputWindowsManager->lastPointerEvent_, nullptr); DisplayInfo displaysInfo; inputWindowsManager->lastPointerEvent_->SetPointerAction(PointerEvent::POINTER_ACTION_PULL_UP); - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displaysInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displaysInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->UpdatePointerDrawingManagerWindowInfo()); } @@ -8708,7 +9117,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdatePointerDrawingMa EXPECT_NE(inputWindowsManager->lastPointerEvent_, nullptr); DisplayInfo displaysInfo; inputWindowsManager->lastPointerEvent_->SetPointerAction(PointerEvent::POINTER_ACTION_BUTTON_UP); - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displaysInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displaysInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->UpdatePointerDrawingManagerWindowInfo()); } @@ -8726,7 +9140,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdatePointerDrawingMa EXPECT_NE(inputWindowsManager->lastPointerEvent_, nullptr); DisplayInfo displaysInfo; inputWindowsManager->lastPointerEvent_->SetPointerAction(PointerEvent::POINTER_ACTION_DOWN); - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displaysInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displaysInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->UpdatePointerDrawingManagerWindowInfo()); } @@ -8744,9 +9163,14 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_UpdateDisplayIdAndName displaysInfo.id = 1; displaysInfo.uniqueId = 1; displaysInfo.uniq = "abc"; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displaysInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displaysInfo); displaysInfo.uniqueId = 1000; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displaysInfo); + displayGroupInfoRef.displaysInfo.push_back(displaysInfo); inputWindowsManager->bindInfo_.AddDisplay(1, "abc"); inputWindowsManager->bindInfo_.AddDisplay(1, "abc"); @@ -8765,7 +9189,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_GetCursorPos_003, Test { CALL_TEST_DEBUG; std::shared_ptr inputWindowsManager = std::make_shared(); - inputWindowsManager->cursorPos_.displayId = -1; + CursorPosition cursorPosRef; + auto it = inputWindowsManager->cursorPosMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->cursorPosMap_.end()) { + cursorPosRef = it->second; + } + cursorPosRef.displayId = -1; DisplayInfo displaysInfo; displaysInfo.id = 2; displaysInfo.width = 30; @@ -8774,9 +9203,14 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_GetCursorPos_003, Test displaysInfo.validHeight = displaysInfo.height; displaysInfo.name = "name2"; displaysInfo.uniq = "uniq2"; - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displaysInfo); + DisplayGroupInfo displayGroupInfoRef; + auto iter = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (iter != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = iter->second; + } + displayGroupInfoRef.displaysInfo.push_back(displaysInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->GetCursorPos()); - EXPECT_EQ(inputWindowsManager->cursorPos_.displayId, displaysInfo.id); + EXPECT_EQ(cursorPosRef.displayId, displaysInfo.id); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->GetCursorPos()); } @@ -8790,7 +9224,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_GetCursorPos_004, Test { CALL_TEST_DEBUG; std::shared_ptr inputWindowsManager = std::make_shared(); - inputWindowsManager->cursorPos_.displayId = -1; + CursorPosition cursorPosRef; + auto it = inputWindowsManager->cursorPosMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->cursorPosMap_.end()) { + cursorPosRef = it->second; + } + cursorPosRef.displayId = -1; EXPECT_NO_FATAL_FAILURE(inputWindowsManager->GetCursorPos()); } @@ -8814,9 +9253,14 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_ResetPointerPositionIf displaysInfo.name = "name2"; displaysInfo.uniq = "uniq2"; displayGroupInfo.displaysInfo.push_back(displaysInfo); - inputWindowsManager->cursorPos_.displayId = displaysInfo.id; - inputWindowsManager->cursorPos_.cursorPos.x = 300; - inputWindowsManager->cursorPos_.cursorPos.y = 300; + CursorPosition cursorPosRef; + auto it = inputWindowsManager->cursorPosMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->cursorPosMap_.end()) { + cursorPosRef = it->second; + } + cursorPosRef.displayId = displaysInfo.id; + cursorPosRef.cursorPos.x = 300; + cursorPosRef.cursorPos.y = 300; EXPECT_NO_FATAL_FAILURE(inputWindowsManager->ResetPointerPositionIfOutValidDisplay(displayGroupInfo)); } @@ -8842,7 +9286,12 @@ HWTEST_F( DisplayInfo displaysInfo; displaysInfo.id = 100; pointerEvent->SetTargetDisplayId(displaysInfo.id); - displayGroupInfo.displaysInfo.push_back(displaysInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.displaysInfo.push_back(displaysInfo); pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_TOUCHSCREEN); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->CancelTouchScreenEventIfValidDisplayChange(displayGroupInfo)); } @@ -8891,15 +9340,19 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_CancelTouchScreenEvent displaysInfo.validHeight = displaysInfo.height; displaysInfo.name = "name2"; displaysInfo.uniq = "uniq2"; + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } displayGroupInfo.displaysInfo.push_back(displaysInfo); std::shared_ptr pointerEvent = PointerEvent::Create(); pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_UNKNOWN); EXPECT_NE(pointerEvent, nullptr); inputWindowsManager->lastPointerEventforGesture_ = pointerEvent; EXPECT_NO_FATAL_FAILURE(inputWindowsManager->CancelTouchScreenEventIfValidDisplayChange(displayGroupInfo)); - pointerEvent->SetTargetDisplayId(displaysInfo.id); - inputWindowsManager->displayGroupInfo_.displaysInfo.push_back(displaysInfo); + displayGroupInfoRef.displaysInfo.push_back(displaysInfo); pointerEvent->SetSourceType(PointerEvent::SOURCE_TYPE_TOUCHSCREEN); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->CancelTouchScreenEventIfValidDisplayChange(displayGroupInfo)); } @@ -9002,7 +9455,12 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_PrintWindowNavbar_001, WindowInfo windowInfo; windowInfo.id = 20; windowInfo.windowInputType = WindowInputType::MIX_BUTTOM_ANTI_AXIS_MOVE; - inputWindowsManager->displayGroupInfo_.windowsInfo.push_back(windowInfo); + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.push_back(windowInfo); EXPECT_NO_FATAL_FAILURE(inputWindowsManager->PrintWindowNavbar()); } @@ -9193,15 +9651,20 @@ HWTEST_F(InputWindowsManagerTest, InputWindowsManagerTest_CheckAppFocused_001, T windowInfo.pid = pid; windowInfo.id = pid; std::shared_ptr inputWindowsManager = std::make_shared(); - inputWindowsManager->displayGroupInfo_.windowsInfo.clear(); - inputWindowsManager->displayGroupInfo_.windowsInfo.emplace_back(windowInfo); - inputWindowsManager->displayGroupInfo_.focusWindowId = pid; + DisplayGroupInfo displayGroupInfoRef; + auto it = inputWindowsManager->displayGroupInfoMap_.find(DEFAULT_GROUP_ID); + if (it != inputWindowsManager->displayGroupInfoMap_.end()) { + displayGroupInfoRef = it->second; + } + displayGroupInfoRef.windowsInfo.clear(); + displayGroupInfoRef.windowsInfo.emplace_back(windowInfo); + displayGroupInfoRef.focusWindowId = pid; EXPECT_TRUE(inputWindowsManager->CheckAppFocused(pid)); pid++; EXPECT_FALSE(inputWindowsManager->CheckAppFocused(pid)); - inputWindowsManager->displayGroupInfo_.focusWindowId = pid + 1; + displayGroupInfoRef.focusWindowId = pid + 1; EXPECT_FALSE(inputWindowsManager->CheckAppFocused(pid)); } diff --git a/util/common/include/define_multimodal.h b/util/common/include/define_multimodal.h index 56347164b0e17141a52ddd1d9650759ba4c2d799..a7f7308a45804b3a10dc4ad48d366046e2c50571 100644 --- a/util/common/include/define_multimodal.h +++ b/util/common/include/define_multimodal.h @@ -124,6 +124,13 @@ inline constexpr int32_t INVALID_PID { -1 }; } \ } while (0) +#define CHKCC(cond) \ + { \ + if (!(cond)) { \ + continue; \ + } \ + } + #define CHK_PID_AND_TID() \ do { \ MMI_HILOGD("%{public}s, (%{public}d), pid:%{public}d threadId:%{public}" PRIu64, \ @@ -266,6 +273,13 @@ inline constexpr int32_t INVALID_PID { -1 }; } \ } while (0) +#define CHKCC(cond) \ + { \ + if (!(cond)) { \ + continue; \ + } \ + } + #define CHK_PID_AND_TID() \ do { \ MMI_HILOGD("pid:%{public}d threadId:%{public}" PRIu64, GetPid(), GetThisThreadId()); \