From 0a11611fd75a2635394dd549dc0d9a3ad17b36fc Mon Sep 17 00:00:00 2001 From: Choe Hwanjin Date: Sat, 7 Nov 2009 22:50:06 +0900 Subject: [PATCH] Improve Hanja mode * Flush the current preedit string and close lookup window before turning off hanja mode. --- src/engine.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/engine.c b/src/engine.c index 7d6a971..254531c 100644 --- a/src/engine.c +++ b/src/engine.c @@ -679,17 +679,24 @@ ibus_hangul_engine_flush (IBusHangulEngine *hangul) const gunichar *str; IBusText *text; + ibus_hangul_engine_hide_lookup_table (hangul); + str = hangul_ic_flush (hangul->context); - if (str == NULL || str[0] == 0) + ustring_append_ucs4 (hangul->preedit, str, -1); + + if (ustring_length (hangul->preedit) == 0) return; + str = ustring_begin (hangul->preedit); text = ibus_text_new_from_ucs4 (str); ibus_engine_hide_preedit_text ((IBusEngine *) hangul); ibus_engine_commit_text ((IBusEngine *) hangul, text); g_object_unref (text); + + ustring_clear(hangul->preedit); } static void @@ -822,6 +829,7 @@ ibus_hangul_engine_property_activate (IBusEngine *engine, } ibus_engine_update_property (engine, hangul->prop_hanja_mode); + ibus_hangul_engine_flush (hangul); } } -- 2.7.4