diff options
-rw-r--r-- | src/ZYZZhuyinEngine.cc | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/ZYZZhuyinEngine.cc b/src/ZYZZhuyinEngine.cc index 399b3b0..033e34e 100644 --- a/src/ZYZZhuyinEngine.cc +++ b/src/ZYZZhuyinEngine.cc @@ -25,6 +25,7 @@ #include "ZYConfig.h" #include "ZYZConfig.h" #include "ZYRawEditor.h" +#include "ZYFallbackEditor.h" #include "ZYZZhuyinEditor.h" #include "ZYZPinyinEditor.h" @@ -36,7 +37,9 @@ ZhuyinEngine::ZhuyinEngine (IBusEngine *engine) : Engine (engine), m_props (ZhuyinConfig::instance ()), m_prev_pressed_key (IBUS_VoidSymbol), - m_input_mode (MODE_INIT) + m_input_mode (MODE_INIT), + m_fallback_editor (new FallbackEditor + (m_props, ZhuyinConfig::instance ())) { gint i; @@ -113,7 +116,13 @@ ZhuyinEngine::processKeyEvent (guint keyval, guint keycode, guint modifiers) return TRUE; } - retval = m_editors[m_input_mode]->processKeyEvent (keyval, keycode, modifiers); + if (m_props.modeChinese ()) { + retval = m_editors[m_input_mode]->processKeyEvent + (keyval, keycode, modifiers); + } else { + retval = m_fallback_editor->processKeyEvent + (keyval, keycode, modifiers); + } /* store ignored key event by editors */ m_prev_pressed_key = retval ? IBUS_VoidSymbol : keyval; |