From f1866141eb048f42ebd4cd2e01831eab61d6e6e9 Mon Sep 17 00:00:00 2001 From: wuliangdong Date: Thu, 11 Sep 2025 14:40:13 +0800 Subject: [PATCH] Fix Unexpected DispatchToNextHandler Caused By Copied KeyEvent. Signed-off-by: wuliangdong Change-Id: I2b4a8723a3f77d3828559272917ea9319149c96e --- service/event_hook/src/event_expiration_checker.cpp | 2 +- service/event_hook/src/key_event_hook_manager.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/service/event_hook/src/event_expiration_checker.cpp b/service/event_hook/src/event_expiration_checker.cpp index 5413c53e74..2e4fbd61d1 100644 --- a/service/event_hook/src/event_expiration_checker.cpp +++ b/service/event_hook/src/event_expiration_checker.cpp @@ -62,7 +62,7 @@ int32_t EventExpirationChecker::UpdateStashEvent(int32_t hookId, std::shared_ptr EventExpirationChecker::StashEvent stashEvent { .timeStampRcvd = std::chrono::duration_cast( std::chrono::steady_clock::now().time_since_epoch()).count(), - .keyEvent = keyEvent + .keyEvent = KeyEvent::Clone(keyEvent) }; stashEvents_[hookId].push_back(stashEvent); return RET_OK; diff --git a/service/event_hook/src/key_event_hook_manager.cpp b/service/event_hook/src/key_event_hook_manager.cpp index 9a959daf44..1c517c9b4a 100644 --- a/service/event_hook/src/key_event_hook_manager.cpp +++ b/service/event_hook/src/key_event_hook_manager.cpp @@ -125,6 +125,7 @@ int32_t KeyEventHookManager::DispatchToNextHandler(int32_t pid, int32_t eventId) } else { // No hooks left, dispatch directly ret = DispatchDirectly(keyEvent); } + MMI_HILOGD("DispatchToNextHandler res:%{public}s", ret ? "success" : "failed"); EVENT_DISPATCH_ORDER_CHECKER.UpdateLastDispatchedId(hook->id, eventId); return ret ? RET_OK : RET_ERR; } -- Gitee