summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfujiwarat <takao.fujiwara1@gmail.com>2021-08-20 09:42:15 +0900
committerfujiwarat <takao.fujiwara1@gmail.com>2021-08-20 09:42:15 +0900
commit5bd2ecc54d35be7724720eaa100349b58f8af109 (patch)
tree072b0866f2310f312e095a8de2c33b7803c2bac7
parent238eb612b5e8faa96841006d863044fffac03eab (diff)
downloadibus-5bd2ecc54d35be7724720eaa100349b58f8af109.tar.gz
src/ibuscomposetable: Do not output incompleted compose dead keys
Incompleted dead keys are used in fi_FI compose.
-rw-r--r--src/ibuscomposetable.c2
-rw-r--r--src/ibusenginesimple.c30
2 files changed, 6 insertions, 26 deletions
diff --git a/src/ibuscomposetable.c b/src/ibuscomposetable.c
index a0b0befc..d4184d30 100644
--- a/src/ibuscomposetable.c
+++ b/src/ibuscomposetable.c
@@ -514,7 +514,7 @@ ibus_compose_list_check_duplicated (GList *compose_list,
for (list = compose_list; list != NULL; list = list->next) {
int i;
int n_compose = 0;
- gboolean compose_finish;
+ gboolean compose_finish = FALSE;
gunichar *output_chars = NULL;
gunichar output_char = 0;
guint n_outputs;
diff --git a/src/ibusenginesimple.c b/src/ibusenginesimple.c
index acfc0264..83b04ebc 100644
--- a/src/ibusenginesimple.c
+++ b/src/ibusenginesimple.c
@@ -788,31 +788,11 @@ ibus_engine_simple_check_all_compose_table (IBusEngineSimple *simple,
gunichar *output_chars = NULL;
gunichar output_char = '\0';
- if (n_compose == 2) {
- /* Special-case deadkey-deadkey sequences.
- * We are not doing chained deadkeys, so we
- * want to commit the first key, and contine
- * preediting with second.
- */
- if (IS_DEAD_KEY (priv->compose_buffer[0]) &&
- IS_DEAD_KEY (priv->compose_buffer[1])) {
- gboolean need_space = FALSE;
- gunichar ch = ibus_keysym_to_unicode (priv->compose_buffer[0],
- FALSE, &need_space);
- guint16 next = priv->compose_buffer[1];
- if (ch) {
- if (need_space)
- g_string_append_c (output, ' ');
- g_string_append_unichar (output, ch);
- ibus_engine_simple_commit_str (simple, output->str);
- g_string_set_size (output, 0);
-
- priv->compose_buffer[0] = next;
- priv->compose_buffer[1] = 0;
- n_compose = 1;
- }
- }
- }
+ /* GtkIMContextSimple output the first compose char in case of
+ * n_compose == 2 but it does not work in fi_FI copmose to output U+1EDD
+ * with the following sequence:
+ * <dead_hook> <dead_horn> <o> : "ờ" U1EDD
+ */
G_LOCK (global_tables);
tmp_list = global_tables;