From 3ab14d2ab01cecb552a87d8f700eada58feb61ac Mon Sep 17 00:00:00 2001 From: Huang Peng Date: Wed, 16 Jul 2008 17:01:05 +0800 Subject: [PATCH] Fix error when restart ibus. --- gtk2/ibusimclient.c | 5 +++-- gtk2/ibusimcontext.c | 5 +++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gtk2/ibusimclient.c b/gtk2/ibusimclient.c index 7d5e542..30896d3 100644 --- a/gtk2/ibusimclient.c +++ b/gtk2/ibusimclient.c @@ -275,9 +275,10 @@ _ibus_im_client_ibus_open (IBusIMClient *client) GList *p; for (p = priv->contexts; p != NULL; p = g_list_next (p)) { - IBusIMContext *ctx = IBUS_IM_CONTEXT (p->data); + IBusIMContext *context = IBUS_IM_CONTEXT (p->data); const gchar *ic = _ibus_im_client_create_input_context (client); - ibus_im_context_set_ic (ctx, ic); + g_hash_table_insert (priv->ic_table, g_strdup (ic), context); + ibus_im_context_set_ic (context, ic); } } diff --git a/gtk2/ibusimcontext.c b/gtk2/ibusimcontext.c index abf236b..2695a99 100644 --- a/gtk2/ibusimcontext.c +++ b/gtk2/ibusimcontext.c @@ -407,7 +407,12 @@ ibus_im_context_set_ic (IBusIMContext *context, const gchar *ic) { IBusIMContextPrivate *priv = context->priv; if (priv->ic) g_free (priv->ic); + priv->ic = g_strdup (ic); + + if (priv->ic == NULL) { + priv->enable = FALSE; + } } void -- 2.7.4