diff --git a/honoka/plugins/romkan.cpp b/honoka/plugins/romkan.cpp index d9f8093..ec3fda0 100644 --- a/honoka/plugins/romkan.cpp +++ b/honoka/plugins/romkan.cpp @@ -518,6 +518,7 @@ */ bool Romkan::keyEventHook(const KeyEvent &key) { + if (key.is_key_release()) return false; if (key_toggle_hw.comp(key)) { switch (mode) { case ASCII: { diff --git a/honoka/src/honoka_imengine.cpp b/honoka/src/honoka_imengine.cpp index d2cf17b..6545a1e 100644 --- a/honoka/src/honoka_imengine.cpp +++ b/honoka/src/honoka_imengine.cpp @@ -726,7 +726,7 @@ */ // �������٥�Ƚ����� - if (key.is_key_release()) return false; + //if (key.is_key_release()) return false; KeyEvent ke = key; if (ke.mask & SCIM_KEY_CapsLockMask) ke.mask -= SCIM_KEY_CapsLockMask; if (ke.mask & SCIM_KEY_NumLockMask) ke.mask -= SCIM_KEY_NumLockMask; @@ -743,6 +743,16 @@ bool HonokaInstance::process_preedit_key_event(const KeyEvent &key) { // PreEdit���Υ������٥�ȡ� + // PreEditor�Υ������٥�ȥեå��� + if (m_preeditor->keyEventHook(key)) { + updatePreEditor(); + return true; + } + + // !! ������release���� + if (key.is_key_release()) return false; + + // �ڤ��ؤ������� for(unsigned int i = 0;i < k_preeditor.size();i ++) { if (k_preeditor[i].comp(key)) { if (preeditors[i] == m_preeditor) return true; @@ -768,12 +778,7 @@ } } - // PreEditor�Υ������٥�ȥեå��� - if (m_preeditor->keyEventHook(key)) { - updatePreEditor(); - return true; - } else - + // ������ if (k_reconversion.comp(key)) { WideString w; int c; @@ -926,6 +931,7 @@ { // �Ѵ����Υ������٥�Ƚ����� // �������� + if (key.is_key_release()) return true; if ((key.code == SCIM_KEY_Shift_L) || (key.code == SCIM_KEY_Shift_R) || (key.code == SCIM_KEY_Control_L) || @@ -1174,6 +1180,7 @@ bool HonokaInstance::process_prediction_key_event(const KeyEvent &key) { // ͽ¬������Υ������٥�Ƚ����� + if (key.is_key_release()) return true; if (!m_prediction) { m_prediction = true; update_aux_string(m_convList.Title + getPosPerCount(m_convList.pos,m_convList.count()));