From deb96075e0fe9021f8fab16de612f3c4a8dc2d5e Mon Sep 17 00:00:00 2001 From: Peng Wu Date: Tue, 12 Jul 2016 13:32:40 +0800 Subject: support extension editor in double pinyin --- src/PYExtEditor.cc | 16 ++++++++-------- src/PYPPinyinEngine.cc | 8 +++++++- 2 files changed, 15 insertions(+), 9 deletions(-) (limited to 'src') 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: -- cgit