diff --git a/honoka/src/honoka_imengine.cpp b/honoka/src/honoka_imengine.cpp index a8d8d2a..2c7da00 100644 --- a/honoka/src/honoka_imengine.cpp +++ b/honoka/src/honoka_imengine.cpp @@ -655,11 +655,11 @@ if (k_commit.comp(key)) { if (auto_conversion) { commit_string(m_convertor->getText()); - if (m_predictor->isConnected()) m_predictor->update(m_convertor->getText()); + if (m_predictor->isConnected()) m_predictor->update(m_convertor->getText(),m_preeditor->getText(true)); m_convertor->reset(); } else { commit_string(m_preeditor->getText(true)); - if (m_predictor->isConnected()) m_predictor->update(m_preeditor->getText(true)); + if (m_predictor->isConnected()) m_predictor->update(m_preeditor->getText(true),m_preeditor->getText(true)); } m_preeditor->reset(); while(preeditStack.size()) { @@ -814,7 +814,7 @@ preeditStack.pop(); } m_convertor->updateFrequency(); - if (m_predictor->isConnected()) m_predictor->update(m_convertor->getText()); + if (m_predictor->isConnected()) m_predictor->update(m_convertor->getText(),m_preeditor->getText(true)); m_preeditor->reset(); m_convertor->reset(); m_conversion = false; @@ -974,7 +974,7 @@ */ commit_string(m_convertor->getText()); m_convertor->updateFrequency(); - if (m_predictor->isConnected()) m_predictor->update(m_convertor->getText()); + if (m_predictor->isConnected()) m_predictor->update(m_convertor->getText(),m_preeditor->getText(true)); m_preeditor->reset(); m_convertor->reset(); m_conversion = false; @@ -1162,7 +1162,7 @@ if (m_conversion) { commit_string(m_convertor->getText()); m_convertor->updateFrequency(); - if (m_predictor->isConnected()) m_predictor->update(m_convertor->getText()); + if (m_predictor->isConnected()) m_predictor->update(m_convertor->getText(),m_preeditor->getText(true)); m_convertor->reset(); if (m_def_convertor != m_convertor) m_convertor = m_def_convertor; m_conversion = false; diff --git a/honoka/src/predictor.cpp b/honoka/src/predictor.cpp index bf1b0d3..ad101b8 100644 --- a/honoka/src/predictor.cpp +++ b/honoka/src/predictor.cpp @@ -87,9 +87,9 @@ /*! - \fn Predictor::update(const WideString str) + \fn Predictor::update(const WideString str,const WideString yomi) */ -void Predictor::update(const WideString str) +void Predictor::update(const WideString str,const WideString yomi) { return; } diff --git a/honoka/src/predictor.h b/honoka/src/predictor.h index c221aea..c5c6ef8 100644 --- a/honoka/src/predictor.h +++ b/honoka/src/predictor.h @@ -52,7 +52,7 @@ virtual bool isConnected(); virtual String getPropertyName(); virtual String getName(); - virtual void update(const WideString str); + virtual void update(const WideString str,const WideString yomi); }; #endif diff --git a/honoka/src/wnnconversion.cpp b/honoka/src/wnnconversion.cpp index bb5f000..3ec6909 100644 --- a/honoka/src/wnnconversion.cpp +++ b/honoka/src/wnnconversion.cpp @@ -517,18 +517,22 @@ /*! - \fn WnnConversion::updateYosoku(WideString text) + \fn WnnConversion::updateYosoku(WideString text,const WideString yomi) */ -void WnnConversion::updateYosoku(WideString text) +void WnnConversion::updateYosoku(WideString text,const WideString yomi) { #ifdef HAVE_LIBWNN7 if (text == pretext) return; + reset(); + setYomiText(yomi); + ren_conversion(); w_char ws[1024]; char c[2048]; String y; m_iconv.convert(y,text); strtows(ws,(unsigned char*)y.c_str()); jl_yosoku_toroku(wnn,ws,text.length()); + reset(); #endif return; diff --git a/honoka/src/wnnconversion.h b/honoka/src/wnnconversion.h index 671bd80..c80ecc6 100644 --- a/honoka/src/wnnconversion.h +++ b/honoka/src/wnnconversion.h @@ -75,7 +75,7 @@ virtual int getCaretPos(); virtual String getName(); virtual String getPropertyName(); - void updateYosoku(WideString text); + void updateYosoku(WideString text,const WideString yomi); protected: diff --git a/honoka/src/wnnprediction.cpp b/honoka/src/wnnprediction.cpp index 3368946..f0632ea 100644 --- a/honoka/src/wnnprediction.cpp +++ b/honoka/src/wnnprediction.cpp @@ -99,11 +99,11 @@ } /*! - \fn WnnPrediction::update(const WideString str) + \fn WnnPrediction::update(const WideString str,const WideString yomi) */ -void WnnPrediction::update(const WideString str) +void WnnPrediction::update(const WideString str,const WideString yomi) { - //convertor->updateYosoku(str); + convertor->updateYosoku(str,yomi); return; } diff --git a/honoka/src/wnnprediction.h b/honoka/src/wnnprediction.h index d161ba2..9b17f93 100644 --- a/honoka/src/wnnprediction.h +++ b/honoka/src/wnnprediction.h @@ -48,7 +48,7 @@ virtual bool isConnected(); virtual String getPropertyName(); virtual String getName(); - virtual void update(const WideString str); + virtual void update(const WideString str,const WideString yomi); protected: WnnConversion *convertor;