diff --git a/WeaselTSF/Compartment.cpp b/WeaselTSF/Compartment.cpp index 06c349510..a6ed82574 100644 --- a/WeaselTSF/Compartment.cpp +++ b/WeaselTSF/Compartment.cpp @@ -280,6 +280,11 @@ HRESULT WeaselTSF::_HandleCompartment(REFGUID guidCompartment) if (IsEqualGUID(guidCompartment, GUID_COMPARTMENT_KEYBOARD_OPENCLOSE)) { BOOL isOpen = _IsKeyboardOpen(); + // clear composition when close keyboard + if (!isOpen && _pEditSessionContext) { + m_client.ClearComposition(); + _EndComposition(_pEditSessionContext, true); + } _EnableLanguageBar(isOpen); } else if (IsEqualGUID(guidCompartment, GUID_COMPARTMENT_KEYBOARD_INPUTMODE_CONVERSION))