diff options
| author | Huang Peng <shawn.p.huang@gmail.com> | 2008-07-16 17:01:05 +0800 |
|---|---|---|
| committer | Huang Peng <shawn.p.huang@gmail.com> | 2008-07-16 17:01:05 +0800 |
| commit | 3ab14d2ab01cecb552a87d8f700eada58feb61ac (patch) | |
| tree | a646b2d5eac36ef58a52c832067512afb8e8aa93 | |
| parent | a1f880ae4c346d154a7777462db8208556c60309 (diff) | |
| download | ibus-3ab14d2ab01cecb552a87d8f700eada58feb61ac.tar.gz ibus-3ab14d2ab01cecb552a87d8f700eada58feb61ac.tar.xz ibus-3ab14d2ab01cecb552a87d8f700eada58feb61ac.zip | |
Fix error when restart ibus.
| -rw-r--r-- | gtk2/ibusimclient.c | 5 | ||||
| -rw-r--r-- | 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 |
