diff --git a/honoka/src/honoka_def.h b/honoka/src/honoka_def.h index dff816f..161eee0 100644 --- a/honoka/src/honoka_def.h +++ b/honoka/src/honoka_def.h @@ -78,6 +78,9 @@ #define HONOKA_DEFAULT_KEY_SELECT_YOSOKU "Tab" #define HONOKA_CONFIG_KEY_AUTO_CONVERSION "/IMEngine/Honoka/Key/AutoConversion" #define HONOKA_DEFAULT_KEY_AUTO_CONVERSION "Alt+a" +#define HONOKA_CONFIG_KEY_RECONVERSION "/IMEngine/Honoka/ReConversion" +#define HONOKA_DEFAULT_KEY_RECONVERSION "Alt+space" + #define HONOKA_CONFIG_ALP "/IMEngine/Honoka/AutoLookupPopup" #define HONOKA_DEFAULT_ALP 3 diff --git a/honoka/src/honoka_imengine.cpp b/honoka/src/honoka_imengine.cpp index 44970f0..dcb2bf2 100644 --- a/honoka/src/honoka_imengine.cpp +++ b/honoka/src/honoka_imengine.cpp @@ -342,6 +342,10 @@ _scim_config->read(String(HONOKA_CONFIG_KEY_PREV_CONVERTOR), String(HONOKA_DEFAULT_KEY_PREV_CONVERTOR))); + scim_string_to_key_list(k_reconversion, + _scim_config->read(String(HONOKA_CONFIG_KEY_RECONVERSION), + String(HONOKA_DEFAULT_KEY_RECONVERSION))); + changePreEditor(defaultPreEditor); // �����ǰ�����³���Ƥ������� @@ -519,6 +523,19 @@ return(true); } else + if (k_reconversion.comp(key)) { + WideString w; + int c; + if (get_surrounding_text(w,c)) { + if (w.length()) { + // delete_surrounding_text()��ȤäƤκ���Ȥ�����͡� + startConversion(w); + alp_count ++; + return(true); + } + } + } + // �Хåե������Ǥ�̵����硣 if (m_preeditor->getTextLength()) { if (k_conversion_start.comp(key)) { diff --git a/honoka/src/honoka_imengine.h b/honoka/src/honoka_imengine.h index 05d95b6..b9e2425 100644 --- a/honoka/src/honoka_imengine.h +++ b/honoka/src/honoka_imengine.h @@ -150,6 +150,7 @@ k_auto_conversion, // �Ѵ��⡼�ɥȥ��� k_next_convertor, // �����Ѵ����󥸥�� k_prev_convertor, // �����Ѵ����󥸥�� + k_reconversion, // ���Ѵ� // for Wnn7 k_conversion_ikeiji, // �۷����Ѵ�