From c9f3ec5f3a04d658194a4b8bfef9ff897985e2f1 Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 15 Sep 2020 16:55:03 +0800 Subject: ... --- src/ui/controls/TextControlService.hpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/ui/controls/TextControlService.hpp') diff --git a/src/ui/controls/TextControlService.hpp b/src/ui/controls/TextControlService.hpp index c9b4066c..5e423d7d 100644 --- a/src/ui/controls/TextControlService.hpp +++ b/src/ui/controls/TextControlService.hpp @@ -357,6 +357,7 @@ class TextControlService : public Object { if (window == nullptr) return; input_method_context_ = GetUiApplication()->GetInputMethodManager()->GetContext(window); + input_method_context_->EnableIME(); auto sync = [this](std::nullptr_t) { this->SyncTextRenderObject(); }; input_method_context_->CompositionStartEvent()->AddHandler( [this](std::nullptr_t) { this->DeleteSelectedText(); }); @@ -373,7 +374,10 @@ class TextControlService : public Object { void LoseFocusHandler(event::FocusChangeEventArgs& args) { if (!args.IsWindow()) this->AbortSelection(); - input_method_context_.reset(); + if (input_method_context_) { + input_method_context_->DisableIME(); + input_method_context_.reset(); + } SyncTextRenderObject(); } -- cgit v1.2.3