Load default input method engine in right moment.
authorHuang Peng <shawn.p.huang@gmail.com>
Fri, 27 Feb 2009 08:55:26 +0000 (16:55 +0800)
committerHuang Peng <shawn.p.huang@gmail.com>
Fri, 27 Feb 2009 08:55:26 +0000 (16:55 +0800)
bus/dbusimpl.c
bus/ibusimpl.c

index fff6364..3cc51dc 100644 (file)
@@ -819,6 +819,7 @@ _connection_ibus_message_cb (BusConnection  *connection,
     ibus_message_set_sender (message, bus_connection_get_unique_name (connection));
 
     switch (ibus_message_get_type (message)) {
+#if 1
     case DBUS_MESSAGE_TYPE_ERROR:
         g_debug ("From :%s to %s, Error: %s : %s",
                  ibus_message_get_sender (message),
@@ -826,6 +827,7 @@ _connection_ibus_message_cb (BusConnection  *connection,
                  ibus_message_get_error_name (message),
                  ibus_message_get_error_message (message));
         break;
+#endif
 #if 0
     case DBUS_MESSAGE_TYPE_METHOD_CALL:
         g_debug("From %s to %s, Method %s on %s",
index 479ce5d..814e831 100644 (file)
@@ -227,6 +227,15 @@ bus_ibus_impl_set_preload_engines (BusIBusImpl *ibus,
 
     g_list_foreach (engine_list, (GFunc) g_object_ref, NULL);
     ibus->engine_list = engine_list;
+
+    if (ibus->engine_list) {
+        IBusComponent *component;
+
+        component = ibus_component_get_from_engine ((IBusEngineDesc *) ibus->engine_list->data);
+        if (component && !ibus_component_is_running (component)) {
+            ibus_component_start (component);
+        }
+    }
 }
 
 static gint
@@ -503,7 +512,7 @@ bus_ibus_impl_destroy (BusIBusImpl *ibus)
             break;
         }
         if (pid == 0) { /* no child status changed */
-            usleep (1000);
+            g_usleep (1000);
             timeout += 1000;
             if (timeout >= G_USEC_PER_SEC) {
                 if (flag == FALSE) {
@@ -851,8 +860,6 @@ _ibus_create_input_context (BusIBusImpl     *ibus,
     context = bus_input_context_new (connection, client);
     ibus->contexts = g_list_append (ibus->contexts, context);
 
-    _context_request_engine_cb (context, NULL, ibus);
-
     static const struct {
         gchar *name;
         GCallback callback;