summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2018-09-10 14:04:14 +0800
committerPeng Wu <alexepico@gmail.com>2018-09-10 14:04:14 +0800
commit4e763225c1cb1fc9876c785bd5217a8bb6f5619f (patch)
treefbec04ac05941c8af2dc5898da1848dee72866e1
parent76942e76aa48f174abf17fc8c9673ce986ed00dc (diff)
downloadibus-libpinyin-4e763225c1cb1fc9876c785bd5217a8bb6f5619f.tar.gz
ibus-libpinyin-4e763225c1cb1fc9876c785bd5217a8bb6f5619f.tar.xz
ibus-libpinyin-4e763225c1cb1fc9876c785bd5217a8bb6f5619f.zip
fixes rememberUserInput method
-rw-r--r--src/PYPBopomofoEditor.cc4
-rw-r--r--src/PYPLibPinyinCandidates.cc19
-rw-r--r--src/PYPPinyinEditor.cc4
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);