diff --git a/scim-wnn/src/scim_wnn_imengine.cpp b/scim-wnn/src/scim_wnn_imengine.cpp index c7280fd..4291367 100644 --- a/scim-wnn/src/scim_wnn_imengine.cpp +++ b/scim-wnn/src/scim_wnn_imengine.cpp @@ -624,7 +624,7 @@ if (!m_yosoku) { m_yosoku = true; update_preedit_string(m_convList.kouho.at(m_convList.pos)); - update_preedit_caret(m_convList.kouho.at(m_convList.pos).length()); + update_preedit_caret(0); show_preedit_string(); updateProperty(); return(true); @@ -638,6 +638,13 @@ updateProperty(); return(true); } else + if (k_commit.comp(key)) { + m_yosoku = false; + commit_string(m_convList.kouho.at(m_convList.pos)); + m_preeditor->reset(); + updatePreEditor(); + return(true); + } else if (k_cancel.comp(key) || k_backspace.comp(key)) { m_yosoku = false; updatePreEditor(); @@ -671,7 +678,7 @@ update_preedit_caret(wnn.getCaretPos()); } else { update_preedit_string(m_convList.kouho.at(m_convList.pos)); - update_preedit_caret(m_convList.kouho.at(m_convList.pos).length()); + update_preedit_caret(0); if (!m_yosoku) { // �ޥ��������򤷤�����ͽ¬����⡼�ɤ������� m_yosoku = true;