diff options
author | Peng Wu <alexepico@gmail.com> | 2012-07-04 10:13:09 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2012-07-04 10:13:09 +0800 |
commit | 268b6cb3d7be7ccbf1a38afcfc2220fab00077d7 (patch) | |
tree | 3ddbf76acf014ed0141bbd235e5d9d2d7acd3db0 /src/PYPPhoneticEditor.cc | |
parent | c4476db5b591139c3c9c0f388be87459d550ec81 (diff) | |
download | ibus-libpinyin-268b6cb3d7be7ccbf1a38afcfc2220fab00077d7.tar.gz ibus-libpinyin-268b6cb3d7be7ccbf1a38afcfc2220fab00077d7.tar.xz ibus-libpinyin-268b6cb3d7be7ccbf1a38afcfc2220fab00077d7.zip |
fixes getPinyinCursor
Diffstat (limited to 'src/PYPPhoneticEditor.cc')
-rw-r--r-- | src/PYPPhoneticEditor.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/PYPPhoneticEditor.cc b/src/PYPPhoneticEditor.cc index aaea9b5..73f5a09 100644 --- a/src/PYPPhoneticEditor.cc +++ b/src/PYPPhoneticEditor.cc @@ -313,11 +313,17 @@ LibPinyinPhoneticEditor::getPinyinCursor () /* Translate cursor position to pinyin position. */ PinyinKeyPosVector & pinyin_poses = m_instance->m_pinyin_key_rests; guint pinyin_cursor = pinyin_poses->len; + + guint16 prev_end = 0, cur_end; for (size_t i = 0; i < pinyin_poses->len; ++i) { PinyinKeyPos *pos = &g_array_index (pinyin_poses, PinyinKeyPos, i); - if (pos->m_raw_begin <= m_cursor && m_cursor < pos->m_raw_end) + cur_end = pos->m_raw_end; + + if (prev_end <= m_cursor && m_cursor < cur_end) pinyin_cursor = i; + + prev_end = cur_end; } g_assert (pinyin_cursor >= 0); |