diff --git a/honoka/src/honoka_imengine.cpp b/honoka/src/honoka_imengine.cpp index 75f3f8b..450966b 100644 --- a/honoka/src/honoka_imengine.cpp +++ b/honoka/src/honoka_imengine.cpp @@ -1706,6 +1706,7 @@ hide_aux_string(); if (m_splitter && (m_splitter != m_convertor) && (!multi)) { + m_convertor->unSelected(); m_splitter->selected(); if (!m_splitter->isConnected()) { if (!m_splitter->connect()) { @@ -1724,6 +1725,7 @@ spsegs = m_splitter->getSegmentList(); m_splitter->reset(); m_splitter->unSelected(); + m_convertor->selected(); s.clear(); for(unsigned int i = 0;i < spsegs.size();i ++) s += spsegs[i].getYomi(); } @@ -1750,7 +1752,15 @@ for(unsigned int i = 0;i < spsegs.size();i ++) { int bl = spsegs[i].getYomi().length(); int cl = m_convertor->getResultList(i).Yomi.length(); - if (bl != cl) m_convertor->resizeRegion(bl - cl); + if (bl != cl) { + bool t = m_convertor->resizeRegion(bl - cl); + if (!t) { + update_aux_string(utf8_mbstowcs(String(_("The error was received from Converter. ")))); + m_convertor->reset(); + show_aux_string(); + return; + } + } } } diff --git a/honoka/src/multiconvertor.cpp b/honoka/src/multiconvertor.cpp index 45bddb3..88896c3 100644 --- a/honoka/src/multiconvertor.cpp +++ b/honoka/src/multiconvertor.cpp @@ -227,7 +227,13 @@ for(unsigned int j = 0;j < texts.size();j ++) { int bl = s[j]; int cl = instance->convertors[i]->getResultList(j).Yomi.length(); - if (bl != cl) instance->convertors[i]->resizeRegion(bl - cl); + if (bl != cl) { + bool t = instance->convertors[i]->resizeRegion(bl - cl); + if (!t) { + nuc.insert(instance->convertors[i]); + break; + } + } } instance->convertors[i]->setPos(p); }