diff options
author | Peng Wu <alexepico@gmail.com> | 2018-09-10 14:04:14 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2018-09-10 14:04:14 +0800 |
commit | 4e763225c1cb1fc9876c785bd5217a8bb6f5619f (patch) | |
tree | fbec04ac05941c8af2dc5898da1848dee72866e1 | |
parent | 76942e76aa48f174abf17fc8c9673ce986ed00dc (diff) | |
download | ibus-libpinyin-4e763225c1cb1fc9876c785bd5217a8bb6f5619f.tar.gz ibus-libpinyin-4e763225c1cb1fc9876c785bd5217a8bb6f5619f.tar.xz ibus-libpinyin-4e763225c1cb1fc9876c785bd5217a8bb6f5619f.zip |
fixes rememberUserInput method
-rw-r--r-- | src/PYPBopomofoEditor.cc | 4 | ||||
-rw-r--r-- | src/PYPLibPinyinCandidates.cc | 19 | ||||
-rw-r--r-- | src/PYPPinyinEditor.cc | 4 |
3 files changed, 16 insertions, 11 deletions
diff --git a/src/PYPBopomofoEditor.cc b/src/PYPBopomofoEditor.cc index 452372f..3f71529 100644 --- a/src/PYPBopomofoEditor.cc +++ b/src/PYPBopomofoEditor.cc @@ -330,10 +330,6 @@ BopomofoEditor::commit (const gchar *str) ++p; } - if (m_config.rememberEveryInput ()) - LibPinyinBackEnd::instance ().rememberUserInput (m_instance, str); - LibPinyinBackEnd::instance ().modified(); - Text text (m_buffer.c_str ()); commitText (text); diff --git a/src/PYPLibPinyinCandidates.cc b/src/PYPLibPinyinCandidates.cc index 17a6da9..4827971 100644 --- a/src/PYPLibPinyinCandidates.cc +++ b/src/PYPLibPinyinCandidates.cc @@ -22,8 +22,11 @@ #include "PYPLibPinyinCandidates.h" #include <assert.h> #include <pinyin.h> +#include "PYConfig.h" +#include "PYLibPinyin.h" #include "PYPPhoneticEditor.h" + using namespace PY; gboolean @@ -92,6 +95,7 @@ LibPinyinCandidates::selectCandidate (EnhancedCandidate & enhanced) lookup_candidate_t * candidate = NULL; pinyin_get_candidate (instance, enhanced.m_candidate_id, &candidate); + gchar * str = NULL; if (CANDIDATE_NBEST_MATCH == enhanced.m_candidate_type) { /* because nbest match candidate starts from the beginning of user input. */ @@ -103,6 +107,11 @@ LibPinyinCandidates::selectCandidate (EnhancedCandidate & enhanced) if (index != 0) pinyin_train (instance, index); + pinyin_get_sentence (instance, index, &str); + if (m_editor->m_config.rememberEveryInput ()) + LibPinyinBackEnd::instance ().rememberUserInput (instance, str); + LibPinyinBackEnd::instance ().modified(); + return SELECT_CANDIDATE_COMMIT; } @@ -112,10 +121,14 @@ LibPinyinCandidates::selectCandidate (EnhancedCandidate & enhanced) pinyin_guess_sentence (instance); if (lookup_cursor == m_editor->m_text.length ()) { - char *tmp = NULL; - pinyin_get_sentence (instance, 0, &tmp); - enhanced.m_display_string = tmp; + pinyin_get_sentence (instance, 0, &str); + enhanced.m_display_string = str; pinyin_train (instance, 0); + + if (m_editor->m_config.rememberEveryInput ()) + LibPinyinBackEnd::instance ().rememberUserInput (instance, str); + LibPinyinBackEnd::instance ().modified (); + return SELECT_CANDIDATE_MODIFY_IN_PLACE|SELECT_CANDIDATE_COMMIT; } diff --git a/src/PYPPinyinEditor.cc b/src/PYPPinyinEditor.cc index ab26b55..e0518d1 100644 --- a/src/PYPPinyinEditor.cc +++ b/src/PYPPinyinEditor.cc @@ -219,10 +219,6 @@ PinyinEditor::commit (const gchar *str) m_buffer << p; } - if (m_config.rememberEveryInput ()) - LibPinyinBackEnd::instance ().rememberUserInput (m_instance, str); - LibPinyinBackEnd::instance ().modified (); - Text text (m_buffer.c_str ()); commitText (text); |