diff --git a/adapter/ohos/tools/raw_input_injector/raw_input_injector.cpp b/adapter/ohos/tools/raw_input_injector/raw_input_injector.cpp index c28ec0a0b032b8f5ae9fc5f7cc5149c91a87d20c..e5cb43b59e51bf069e95514712a56eb636b4a25b 100644 --- a/adapter/ohos/tools/raw_input_injector/raw_input_injector.cpp +++ b/adapter/ohos/tools/raw_input_injector/raw_input_injector.cpp @@ -330,19 +330,24 @@ void RawInputInjector::DoInject(const std::vector std::this_thread::sleep_for(std::chrono::milliseconds(intervalTimeMs)); // update current global status - UpdateGlobalStatus(actionList, activedInjectingInfos); + UpdateGlobalStatus(actionList, activedInjectingInfos, allOtherInjectingInfos); currentTime += intervalTimeMs; round++; } } -void RawInputInjector::UpdateGlobalStatus( - const std::vector& actionList, const std::vector& activedInjectingInfos) +void RawInputInjector::UpdateGlobalStatus(const std::vector& actionList, + const std::vector& activedInjectingInfos, const std::vector& otherInjectingInfos) { - if (activedInjectingInfos.empty()) { + std::vector allEvents; + allEvents.insert(allEvents.end(), activedInjectingInfos.begin(), activedInjectingInfos.end()); + allEvents.insert(allEvents.end(), otherInjectingInfos.begin(), otherInjectingInfos.end()); + + if (allEvents.empty()) { return; } - for (auto& info : activedInjectingInfos) { + + for (auto& info : allEvents) { bool isStartUpdateNeeded = false; for (auto& action : actionList) { if (action.finger == info.finger) { diff --git a/adapter/ohos/tools/raw_input_injector/raw_input_injector.h b/adapter/ohos/tools/raw_input_injector/raw_input_injector.h index 9ec93687326a89aeeda66307482453fb02a7a312..f1c34ae4774400ba8d4315028115696576c1bb29 100644 --- a/adapter/ohos/tools/raw_input_injector/raw_input_injector.h +++ b/adapter/ohos/tools/raw_input_injector/raw_input_injector.h @@ -93,8 +93,8 @@ private: void DumpInjectingInfo(int32_t round, std::vector& activedInjectingInfos, std::vector& otherInjectingInfos) const; int32_t EstimateActiveFinger(const std::vector& actionList, int32_t lastActivedFinger) const; - void UpdateGlobalStatus( - const std::vector& actionList, const std::vector& activedInjectingInfos); + void UpdateGlobalStatus(const std::vector& actionList, + const std::vector& activedInjectingInfos, const std::vector& otherInjectingInfos); bool IsAllConsumed() const; int32_t GetOptFromCurrentPosAndMoveOn(int32_t argc, char* argv[]); std::string GetParamFromCurrentPosAndMoveOn(int32_t argc, char* argv[]);