summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2016-07-12 13:32:40 +0800
committerPeng Wu <alexepico@gmail.com>2016-07-12 13:32:40 +0800
commitdeb96075e0fe9021f8fab16de612f3c4a8dc2d5e (patch)
tree78b6f5b8356e64726e8702fdc50db8f1e7f46ff7 /src
parent4f5d41b82b9fe2b76b642f89c32f3992fcd82319 (diff)
downloadibus-libpinyin-deb96075e0fe9021f8fab16de612f3c4a8dc2d5e.tar.gz
ibus-libpinyin-deb96075e0fe9021f8fab16de612f3c4a8dc2d5e.tar.xz
ibus-libpinyin-deb96075e0fe9021f8fab16de612f3c4a8dc2d5e.zip
support extension editor in double pinyin
Diffstat (limited to 'src')
-rw-r--r--src/PYExtEditor.cc16
-rw-r--r--src/PYPPinyinEngine.cc8
2 files changed, 15 insertions, 9 deletions
diff --git a/src/PYExtEditor.cc b/src/PYExtEditor.cc
index 031e760..30723e6 100644
--- a/src/PYExtEditor.cc
+++ b/src/PYExtEditor.cc
@@ -219,16 +219,16 @@ ExtEditor::processKeyEvent (guint keyval, guint keycode, guint modifiers)
switch (m_cursor) {
case 0: //Empty input string.
{
- g_return_val_if_fail ( 'i' == keyval, FALSE);
- if ( 'i' == keyval ) {
+ g_return_val_if_fail ( 'i' == keyval || 'I' == keyval, FALSE);
+ if ( 'i' == keyval || 'I' == keyval) {
m_text.insert (m_cursor, keyval);
m_cursor++;
}
}
break;
- case 1 ... 2: // Only contains 'i' in input string.
+ case 1 ... 2: // Only contains 'i' or 'I' in input string.
{
- g_return_val_if_fail ( 'i' == m_text[0], FALSE);
+ g_return_val_if_fail ( 'i' == m_text[0] || 'I' == m_text[0], FALSE);
if ( isalnum (keyval) ) {
m_text.insert (m_cursor, keyval);
m_cursor++;
@@ -237,7 +237,7 @@ ExtEditor::processKeyEvent (guint keyval, guint keycode, guint modifiers)
break;
default: //Here is the appended argment.
{
- g_return_val_if_fail ( 'i' == m_text[0], FALSE);
+ g_return_val_if_fail ( 'i' == m_text[0] || 'I' == m_text[0], FALSE);
if (isprint (keyval)) {
m_text.insert (m_cursor, keyval);
m_cursor++;
@@ -603,12 +603,12 @@ ExtEditor::updateStateFromInput (void)
return FALSE;
}
- if ( 'i' != m_text[0] ) {
- g_warning ("i is expected in m_text string.\n");
+ if ( 'i' != m_text[0] && 'I' != m_text[0] ) {
+ g_warning ("'i' or 'I' is expected in m_text string.\n");
return FALSE;
}
- m_auxiliary_text = "i";
+ m_auxiliary_text = m_text[0];
m_mode = LABEL_LIST_COMMANDS;
if ( 1 == m_text.length () ) {
diff --git a/src/PYPPinyinEngine.cc b/src/PYPPinyinEngine.cc
index 344a50e..dc45c5d 100644
--- a/src/PYPPinyinEngine.cc
+++ b/src/PYPPinyinEngine.cc
@@ -187,11 +187,17 @@ PinyinEngine::processKeyEvent (guint keyval, guint keycode, guint modifiers)
break;
#ifdef IBUS_BUILD_LUA_EXTENSION
case IBUS_i:
- // do not enable lua extension when use double pinyin.
+ // for full pinyin
if (PinyinConfig::instance ().doublePinyin ())
break;
m_input_mode = MODE_EXTENSION;
break;
+ case IBUS_I:
+ // for double pinyin
+ if (!PinyinConfig::instance ().doublePinyin ())
+ break;
+ m_input_mode = MODE_EXTENSION;
+ break;
#endif
#ifdef IBUS_BUILD_ENGLISH_INPUT_MODE
case IBUS_v: