summaryrefslogtreecommitdiff
path: root/src/PYPinyinEngine.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/PYPinyinEngine.cc')
-rw-r--r--src/PYPinyinEngine.cc18
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 {