From 1155ae281bd1482b81a8c317c92632edf2127c94 Mon Sep 17 00:00:00 2001 From: hwzhangchuang Date: Thu, 30 Nov 2023 17:25:49 +0800 Subject: [PATCH 1/2] modify bug Signed-off-by: hwzhangchuang --- services/state/src/dinput_state.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/services/state/src/dinput_state.cpp b/services/state/src/dinput_state.cpp index 357f8ef..07849b5 100644 --- a/services/state/src/dinput_state.cpp +++ b/services/state/src/dinput_state.cpp @@ -231,14 +231,26 @@ void DInputState::CheckAndSetLongPressedKeyOrder(struct RawEvent event) std::lock_guard mapLock(keyDownStateMapMtx_); auto iter = keyDownStateMap_.find(event.descriptor); if (iter == keyDownStateMap_.end()) { + DHLOGI("Find new pressed key, save it, node id: %s, type: %d, key code: %d, value: %d", + event.descriptor.c_str(), event.type, event.code, event.value); + keyDownStateMap_[event.descriptor].push_back(event); return; } auto evIter = std::find(keyDownStateMap_[event.descriptor].begin(), keyDownStateMap_[event.descriptor].end(), event); - // If not find the cache key on pressing, or it is already the last one, just return - if (evIter == keyDownStateMap_[event.descriptor].end() || - evIter == (keyDownStateMap_[event.descriptor].end() - 1)) { + // If not find the cache key on pressing, save it + if (evIter == keyDownStateMap_[event.descriptor].end()) { + DHLOGI("Find new pressed key, save it, node id: %s, type: %d, key code: %d, value: %d", + event.descriptor.c_str(), event.type, event.code, event.value); + keyDownStateMap_[event.descriptor].push_back(event); + return; + } + + //it is already the last one, just return + if (evIter == (keyDownStateMap_[event.descriptor].end() - 1)) { + DHLOGI("Pressed key already last one, node id: %s, type: %d, key code: %d, value: %d", + event.descriptor.c_str(), event.type, event.code, event.value); return; } -- Gitee From 9bb3a09727647937d3cd9454031b7bc00aee1eb8 Mon Sep 17 00:00:00 2001 From: hwzhangchuang Date: Thu, 30 Nov 2023 19:12:09 +0800 Subject: [PATCH 2/2] add Signed-off-by: hwzhangchuang --- services/state/src/dinput_state.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/state/src/dinput_state.cpp b/services/state/src/dinput_state.cpp index 07849b5..846b5e2 100644 --- a/services/state/src/dinput_state.cpp +++ b/services/state/src/dinput_state.cpp @@ -247,7 +247,7 @@ void DInputState::CheckAndSetLongPressedKeyOrder(struct RawEvent event) return; } - //it is already the last one, just return + // it is already the last one, just return if (evIter == (keyDownStateMap_[event.descriptor].end() - 1)) { DHLOGI("Pressed key already last one, node id: %s, type: %d, key code: %d, value: %d", event.descriptor.c_str(), event.type, event.code, event.value); -- Gitee