Index: dev-libs/m17n-lib/files/m17n-lib-1.6.2-candidates-list.patch |
diff --git a/dev-libs/m17n-lib/files/m17n-lib-1.6.2-candidates-list.patch b/dev-libs/m17n-lib/files/m17n-lib-1.6.2-candidates-list.patch |
new file mode 100644 |
index 0000000000000000000000000000000000000000..40cd85d49c2b967d1b84d5ee9ebc914105481903 |
--- /dev/null |
+++ b/dev-libs/m17n-lib/files/m17n-lib-1.6.2-candidates-list.patch |
@@ -0,0 +1,83 @@ |
+--- src/input.c 2011/02/14 04:59:22 1.154 |
++++ src/input.c 2011/03/09 05:45:49 1.155 |
+@@ -3004,9 +3004,6 @@ |
+ take_action_list (MInputContext *ic, MPlist *action_list) |
+ { |
+ MInputContextInfo *ic_info = (MInputContextInfo *) ic->info; |
+- MPlist *candidate_list = ic->candidate_list; |
+- int candidate_index = ic->candidate_index; |
+- int candidate_show = ic->candidate_show; |
+ MTextProperty *prop; |
+ |
+ MPLIST_DO (action_list, action_list) |
+@@ -3480,31 +3477,6 @@ |
+ }; |
+ } |
+ } |
+- |
+- if (ic->candidate_list) |
+- { |
+- M17N_OBJECT_UNREF (ic->candidate_list); |
+- ic->candidate_list = NULL; |
+- } |
+- if (ic->cursor_pos > 0 |
+- && (prop = mtext_get_property (ic->preedit, ic->cursor_pos - 1, |
+- Mcandidate_list))) |
+- { |
+- ic->candidate_list = mtext_property_value (prop); |
+- M17N_OBJECT_REF (ic->candidate_list); |
+- ic->candidate_index |
+- = (int) mtext_get_prop (ic->preedit, ic->cursor_pos - 1, |
+- Mcandidate_index); |
+- ic->candidate_from = mtext_property_start (prop); |
+- ic->candidate_to = mtext_property_end (prop); |
+- } |
+- |
+- if (candidate_list != ic->candidate_list) |
+- ic->candidates_changed |= MINPUT_CANDIDATES_LIST_CHANGED; |
+- if (candidate_index != ic->candidate_index) |
+- ic->candidates_changed |= MINPUT_CANDIDATES_INDEX_CHANGED; |
+- if (candidate_show != ic->candidate_show) |
+- ic->candidates_changed |= MINPUT_CANDIDATES_SHOW_CHANGED; |
+ return 0; |
+ } |
+ |
+@@ -3914,7 +3886,37 @@ |
+ ic_info->key_unhandled = 0; |
+ |
+ do { |
+- if (handle_key (ic) < 0) |
++ MPlist *candidate_list = ic->candidate_list; |
++ int candidate_index = ic->candidate_index; |
++ int candidate_show = ic->candidate_show; |
++ MTextProperty *prop; |
++ int result = handle_key (ic); |
++ |
++ if (ic->candidate_list) |
++ { |
++ M17N_OBJECT_UNREF (ic->candidate_list); |
++ ic->candidate_list = NULL; |
++ } |
++ if (ic->cursor_pos > 0 |
++ && (prop = mtext_get_property (ic->preedit, ic->cursor_pos - 1, |
++ Mcandidate_list))) |
++ { |
++ ic->candidate_list = mtext_property_value (prop); |
++ M17N_OBJECT_REF (ic->candidate_list); |
++ ic->candidate_index |
++ = (int) mtext_get_prop (ic->preedit, ic->cursor_pos - 1, |
++ Mcandidate_index); |
++ ic->candidate_from = mtext_property_start (prop); |
++ ic->candidate_to = mtext_property_end (prop); |
++ } |
++ if (candidate_list != ic->candidate_list) |
++ ic->candidates_changed |= MINPUT_CANDIDATES_LIST_CHANGED; |
++ if (candidate_index != ic->candidate_index) |
++ ic->candidates_changed |= MINPUT_CANDIDATES_INDEX_CHANGED; |
++ if (candidate_show != ic->candidate_show) |
++ ic->candidates_changed |= MINPUT_CANDIDATES_SHOW_CHANGED; |
++ |
++ if (result < 0) |
+ { |
+ /* KEY was not handled. Delete it from the current key sequence. */ |
+ if (ic_info->used > 0) |