summaryrefslogtreecommitdiffstats
path: root/src/ZYZPhoneticEditor.cc
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2014-07-08 13:50:58 +0800
committerPeng Wu <alexepico@gmail.com>2014-07-08 13:56:58 +0800
commit425c349f0014cd22081d41fea77b9d3c9f402955 (patch)
tree8f85697b5cf4f8ead67d60589cc24cac888aa860 /src/ZYZPhoneticEditor.cc
parentf0da20aa3a9f94300cb3a918e8c6dc7311d605db (diff)
downloadibus-libzhuyin-425c349f0014cd22081d41fea77b9d3c9f402955.tar.gz
ibus-libzhuyin-425c349f0014cd22081d41fea77b9d3c9f402955.tar.xz
ibus-libzhuyin-425c349f0014cd22081d41fea77b9d3c9f402955.zip
use function zhuyin_get_zhuyin_key_rest_offset
Diffstat (limited to 'src/ZYZPhoneticEditor.cc')
-rw-r--r--src/ZYZPhoneticEditor.cc44
1 files changed, 8 insertions, 36 deletions
diff --git a/src/ZYZPhoneticEditor.cc b/src/ZYZPhoneticEditor.cc
index ffa9b66..a6c8e4f 100644
--- a/src/ZYZPhoneticEditor.cc
+++ b/src/ZYZPhoneticEditor.cc
@@ -551,25 +551,10 @@ PhoneticEditor::getZhuyinCursor (void)
zhuyin_get_n_zhuyin (instance, &len);
zhuyin_cursor += len;
} else {
- guint len = 0;
- zhuyin_get_n_zhuyin (instance, &len);
-
- guint inner_cursor = len;
-
- guint16 prev_end = 0, cur_end;
- for (size_t i = 0; i < len; ++i) {
- ChewingKeyRest *pos = NULL;
- zhuyin_get_zhuyin_key_rest (instance, i, &pos);
- zhuyin_get_zhuyin_key_rest_positions
- (instance, pos, NULL, &cur_end);
+ guint16 inner_cursor = 0;
+ zhuyin_get_zhuyin_key_rest_offset
+ (instance, cursor, &inner_cursor);
- if (prev_end < cursor && cursor < cur_end)
- inner_cursor = i;
-
- prev_end = cur_end;
- }
-
- assert (inner_cursor >= 0);
zhuyin_cursor += inner_cursor;
cursor = 0;
}
@@ -723,25 +708,10 @@ PhoneticEditor::prepareCandidates (void)
update ();
return TRUE;
} else {
- guint len = 0;
- zhuyin_get_n_zhuyin (instance, &len);
-
- guint inner_cursor = len;
-
- guint16 prev_end = 0, cur_end;
- for (size_t i = 0; i < len; ++i) {
- ChewingKeyRest *pos = NULL;
- zhuyin_get_zhuyin_key_rest (instance, i, &pos);
- zhuyin_get_zhuyin_key_rest_positions
- (instance, pos, NULL, &cur_end);
-
- if (prev_end < cursor && cursor < cur_end)
- inner_cursor = i;
+ guint16 inner_cursor = 0;
+ zhuyin_get_zhuyin_key_rest_offset
+ (instance, cursor, &inner_cursor);
- prev_end = cur_end;
- }
-
- assert (inner_cursor >= 0);
m_input_state = STATE_CANDIDATE_SHOWN;
m_phonetic_section->initCandidates (instance, inner_cursor);
@@ -780,6 +750,8 @@ PhoneticEditor::prepareCandidates (void)
return TRUE;
}
}
+
+ return FALSE;
}