diff options
author | Peng Wu <alexepico@gmail.com> | 2011-09-28 17:51:56 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2011-12-22 12:23:13 +0800 |
commit | 6a7e7ef94cc3e457fcd81bb9988ff83a9e1c9406 (patch) | |
tree | 7cebee3a880ea44af7f357d3dd758a6fd82817f9 /src/PYPPinyinEngine.cc | |
parent | a06c8ad7f26ca41a2c52bd824bed0fc0461ba58b (diff) | |
download | ibus-libpinyin-6a7e7ef94cc3e457fcd81bb9988ff83a9e1c9406.tar.gz ibus-libpinyin-6a7e7ef94cc3e457fcd81bb9988ff83a9e1c9406.tar.xz ibus-libpinyin-6a7e7ef94cc3e457fcd81bb9988ff83a9e1c9406.zip |
polish code
Diffstat (limited to 'src/PYPPinyinEngine.cc')
-rw-r--r-- | src/PYPPinyinEngine.cc | 29 |
1 files changed, 9 insertions, 20 deletions
diff --git a/src/PYPPinyinEngine.cc b/src/PYPPinyinEngine.cc index 2877702..f8e20ee 100644 --- a/src/PYPPinyinEngine.cc +++ b/src/PYPPinyinEngine.cc @@ -46,7 +46,9 @@ LibPinyinPinyinEngine::LibPinyinPinyinEngine (IBusEngine *engine) { gint i; - if (PinyinConfig::instance ().doublePinyin ()) + m_double_pinyin = PinyinConfig::instance ().doublePinyin (); + + if (m_double_pinyin) m_editors[MODE_INIT].reset (new LibPinyinDoublePinyinEditor (m_props, PinyinConfig::instance ())); else @@ -148,23 +150,7 @@ LibPinyinPinyinEngine::processKeyEvent (guint keyval, guint keycode, guint modif #endif } } else { - if (m_prev_pressed_key != IBUS_period) { - if ((keyval == IBUS_at || keyval == IBUS_colon)) { - m_input_mode = MODE_RAW; - m_editors[MODE_RAW]->setText (text, text.length ()); - m_editors[MODE_INIT]->reset (); - } - } - else { - if ((keyval >= IBUS_a && keyval <= IBUS_z) || - (keyval >= IBUS_A && keyval <= IBUS_Z)) { - String tmp = text; - tmp += "."; - m_input_mode = MODE_RAW; - m_editors[MODE_RAW]->setText (tmp, tmp.length ()); - m_editors[MODE_INIT]->reset (); - } - } + g_assert_not_reached (); } } retval = m_editors[m_input_mode]->processKeyEvent (keyval, keycode, modifiers); @@ -189,17 +175,20 @@ LibPinyinPinyinEngine::focusIn (void) /* TODO: check memory leak here, * or switch full/double pinyin when pinyin config is changed.*/ if (PinyinConfig::instance ().doublePinyin ()) { - if (dynamic_cast <LibPinyinDoublePinyinEditor *> (m_editors[MODE_INIT].get ()) == NULL) { + if (!m_double_pinyin) { m_editors[MODE_INIT].reset (new LibPinyinDoublePinyinEditor (m_props, PinyinConfig::instance ())); connectEditorSignals (m_editors[MODE_INIT]); } + m_double_pinyin = TRUE; } else { - if (dynamic_cast <LibPinyinFullPinyinEditor *> (m_editors[MODE_INIT].get ()) == NULL) { + if (m_double_pinyin) { m_editors[MODE_INIT].reset (new LibPinyinFullPinyinEditor (m_props, PinyinConfig::instance ())); connectEditorSignals (m_editors[MODE_INIT]); } + m_double_pinyin = FALSE; } + registerProperties (m_props.properties ()); } |