From 64d6aea4d346c0171767a5dfb5410995f6a18cfe Mon Sep 17 00:00:00 2001 From: blc Date: Mon, 14 Jul 2025 18:23:24 +0800 Subject: [PATCH] clear listener while attach failed! Signed-off-by: blc --- .../inputmethod_controller/src/input_method_controller.cpp | 1 + frameworks/ndk/include/native_text_changed_listener.h | 2 +- frameworks/ndk/src/native_text_changed_listener.cpp | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/frameworks/native/inputmethod_controller/src/input_method_controller.cpp b/frameworks/native/inputmethod_controller/src/input_method_controller.cpp index 42f79c159..023a0ca01 100644 --- a/frameworks/native/inputmethod_controller/src/input_method_controller.cpp +++ b/frameworks/native/inputmethod_controller/src/input_method_controller.cpp @@ -341,6 +341,7 @@ int32_t InputMethodController::Attach(sptr listener, cons .SetClientType(type) .Build(); ImcHiSysEventReporter::GetInstance().ReportEvent(ImfEventType::CLIENT_ATTACH, *evenInfo); + SetTextListener(nullptr); return ret; } clientInfo_.state = ClientState::ACTIVE; diff --git a/frameworks/ndk/include/native_text_changed_listener.h b/frameworks/ndk/include/native_text_changed_listener.h index fed1f4b8f..2c95fcac0 100644 --- a/frameworks/ndk/include/native_text_changed_listener.h +++ b/frameworks/ndk/include/native_text_changed_listener.h @@ -21,7 +21,7 @@ namespace MiscServices { class NativeTextChangedListener : public OHOS::MiscServices::OnTextChangedListener { public: explicit NativeTextChangedListener(InputMethod_TextEditorProxy *textEditor) : textEditor_(textEditor) {}; - ~NativeTextChangedListener() {}; + ~NativeTextChangedListener(); void InsertText(const std::u16string &text) override; void DeleteForward(int32_t length) override; void DeleteBackward(int32_t length) override; diff --git a/frameworks/ndk/src/native_text_changed_listener.cpp b/frameworks/ndk/src/native_text_changed_listener.cpp index 32e9b72c6..4753a48c2 100644 --- a/frameworks/ndk/src/native_text_changed_listener.cpp +++ b/frameworks/ndk/src/native_text_changed_listener.cpp @@ -18,6 +18,10 @@ namespace OHOS { namespace MiscServices { +NativeTextChangedListener::~NativeTextChangedListener() +{ + textEditor_ = nullptr; +} void NativeTextChangedListener::InsertText(const std::u16string &text) { if (textEditor_ == nullptr) { -- Gitee