From 70a720de606721687f1c995ea50692d58bb3d101 Mon Sep 17 00:00:00 2001 From: Peng Huang Date: Fri, 7 Aug 2009 14:34:43 +0800 Subject: [PATCH] Do not emit preedit changed signal if preedit text is still invisible --- client/gtk2/ibusimcontext.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/client/gtk2/ibusimcontext.c b/client/gtk2/ibusimcontext.c index 68a77d8..d914eae 100644 --- a/client/gtk2/ibusimcontext.c +++ b/client/gtk2/ibusimcontext.c @@ -774,14 +774,22 @@ _ibus_context_update_preedit_text_cb (IBusInputContext *ibuscontext, ibusimcontext->preedit_visible = visible; if (ibusimcontext->preedit_visible) { - if (flag) + if (flag) { + /* invisible => visible */ g_signal_emit (ibusimcontext, _signal_preedit_start_id, 0); + } g_signal_emit (ibusimcontext, _signal_preedit_changed_id, 0); } else { - g_signal_emit (ibusimcontext, _signal_preedit_changed_id, 0); - if (flag) + if (flag) { + /* visible => invisible */ + g_signal_emit (ibusimcontext, _signal_preedit_changed_id, 0); g_signal_emit (ibusimcontext, _signal_preedit_end_id, 0); + } + else { + /* still invisible */ + /* do nothing */ + } } } -- 2.7.4