From 08e0631045f53c49e623570f302dc823e69ae5c0 Mon Sep 17 00:00:00 2001
From: Peng Huang <shawn.p.huang@gmail.com>
Date: Tue, 21 Sep 2010 20:40:59 +0800
Subject: [PATCH 04/11] Use MInputContext::arg and remove the table for ic and engine.

BUG=none
TEST=manual

Review URL: http://codereview.appspot.com/2260041
---
 src/engine.c |   15 ++++++++-------
 1 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/src/engine.c b/src/engine.c
index 0da0ae6..dbd00fc 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -78,8 +78,6 @@ static void ibus_m17n_engine_update_lookup_table
 
 static IBusEngineClass *parent_class = NULL;
 static GHashTable      *im_table = NULL;
-/* The hash table associates MInputContext with IBusM17nEngine. */
-static GHashTable      *m17n_inputcontexts = NULL;
 
 static IBusConfig      *config = NULL;
 static guint            preedit_foreground = INVALID_COLOR;
@@ -152,7 +150,6 @@ ibus_m17n_engine_class_init (IBusM17NEngineClass *klass)
 
     engine_class->property_activate = ibus_m17n_engine_property_activate;
 
-    m17n_inputcontexts = g_hash_table_new (g_direct_hash, g_direct_equal);
 }
 
 static void
@@ -301,8 +298,7 @@ ibus_m17n_engine_constructor (GType                   type,
         return NULL;
     }
 
-    m17n->context = minput_create_ic (im, NULL);
-    g_hash_table_insert (m17n_inputcontexts, m17n->context, m17n);
+    m17n->context = minput_create_ic (im, m17n);
 
     m17n->config_section = g_strdup_printf ("engine/M17N/%s/%s",
                                             lang, name);
@@ -382,7 +378,6 @@ ibus_m17n_engine_destroy (IBusM17NEngine *m17n)
     }
 
     if (m17n->context) {
-        g_hash_table_remove (m17n_inputcontexts, m17n->context);
         minput_destroy_ic (m17n->context);
         m17n->context = NULL;
     }
@@ -762,9 +757,15 @@ ibus_m17n_engine_callback (MInputContext *context,
 {
     IBusM17NEngine *m17n = NULL;
 
-    m17n = g_hash_table_lookup (m17n_inputcontexts, context);
+    m17n = context->arg;
     g_return_if_fail (m17n != NULL);
 
+    /* the callback may be called in minput_create_ic, in the time
+     * m17n->context has not be assigned, so need assign it. */
+    if (m17n->context == NULL) {
+        m17n->context = context;
+    }
+
     if (command == Minput_preedit_start) {
         ibus_engine_hide_preedit_text ((IBusEngine *)m17n);
     }
-- 
1.7.3.1

