From 45fc184f99a90c32d282732b5adf1199b219016c Mon Sep 17 00:00:00 2001 From: Peng Wu Date: Wed, 21 Sep 2011 11:25:58 +0800 Subject: use pinyin pos --- src/PYPPhoneticEditor.cc | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src/PYPPhoneticEditor.cc') diff --git a/src/PYPPhoneticEditor.cc b/src/PYPPhoneticEditor.cc index a26ce85..217e545 100644 --- a/src/PYPPhoneticEditor.cc +++ b/src/PYPPhoneticEditor.cc @@ -299,13 +299,15 @@ guint LibPinyinPhoneticEditor::getPinyinCursor () { /* Translate cursor position to pinyin position. */ - guint pinyin_cursor = m_pinyins.size (); - PinyinArray::const_iterator iter = m_pinyins.begin (); - for ( ; iter != m_pinyins.end (); ++iter) { - guint end = iter->begin + iter->len; - if ( iter->begin <= m_cursor && m_cursor < end ) - pinyin_cursor = iter - m_pinyins.begin (); + PinyinKeyPosVector & pinyin_poses = m_instance->m_pinyin_poses; + guint pinyin_cursor = pinyin_poses->len; + for (size_t i = 0; i < pinyin_poses->len; ++i) { + PinyinKeyPos *pos = &g_array_index + (pinyin_poses, PinyinKeyPos, i); + if (pos->get_pos () <= m_cursor && m_cursor < pos->get_end_pos ()) + pinyin_cursor = i; } + g_assert (pinyin_cursor >= 0); return pinyin_cursor; } -- cgit