diff --git a/frameworks/native/inputmethod_controller/src/input_method_controller.cpp b/frameworks/native/inputmethod_controller/src/input_method_controller.cpp index 42f79c159adc3d41e5ad1f672883d973164d0381..023a0ca01ff81dff6baa977133bd9e96ebfb6ae3 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 fed1f4b8f03a2bb8219e28fd5fbb8570df047ffd..2c95fcac0058951d50968ece51739f9ba7f16deb 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 32e9b72c63ed2a7fe0aa37b6199fde8e7cdd61a1..4753a48c2689019b7f513b928df505a66243b9f1 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) {