diff options
Diffstat (limited to 'src/PYPinyinEngine.cc')
-rw-r--r-- | src/PYPinyinEngine.cc | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/PYPinyinEngine.cc b/src/PYPinyinEngine.cc index f773675..c871b7c 100644 --- a/src/PYPinyinEngine.cc +++ b/src/PYPinyinEngine.cc @@ -26,6 +26,9 @@ #ifdef IBUS_BUILD_LUA_EXTENSION #include "PYExtEditor.h" #endif +#ifdef IBUS_BUILD_ENGLISH_INPUT_MODE +#include "PYEnglishEditor.h" +#endif #include "PYFullPinyinEditor.h" #include "PYDoublePinyinEditor.h" #include "PYFallbackEditor.h" @@ -54,6 +57,11 @@ PinyinEngine::PinyinEngine (IBusEngine *engine) #else m_editors[MODE_EXTENSION].reset (new Editor (m_props, PinyinConfig::instance ())); #endif +#ifdef IBUS_BUILD_ENGLISH_INPUT_MODE + m_editors[MODE_ENGLISH].reset (new EnglishEditor (m_props, PinyinConfig::instance ())); +#else + m_editors[MODE_ENGLISH].reset (new Editor (m_props, PinyinConfig::instance ())); +#endif m_props.signalUpdateProperty ().connect (std::bind (&PinyinEngine::updateProperty, this, _1)); @@ -101,7 +109,7 @@ PinyinEngine::processKeyEvent (guint keyval, guint keycode, guint modifiers) /* Toggle simp/trad Chinese Mode when hotkey Ctrl + Shift + F pressed */ if (keyval == IBUS_F && scmshm_test (modifiers, (IBUS_SHIFT_MASK | IBUS_CONTROL_MASK))) { - m_props.toggleModeSimp(); + m_props.toggleModeSimp (); m_prev_pressed_key = IBUS_F; return TRUE; } @@ -123,6 +131,14 @@ PinyinEngine::processKeyEvent (guint keyval, guint keycode, guint modifiers) m_input_mode = MODE_EXTENSION; break; #endif +#ifdef IBUS_BUILD_ENGLISH_INPUT_MODE + case IBUS_v: + // do not enable english mode when use double pinyin. + if (PinyinConfig::instance ().doublePinyin ()) + break; + m_input_mode = MODE_ENGLISH; + break; +#endif } } else { |