summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHuang Peng <shawn.p.huang@gmail.com>2009-02-27 16:55:26 +0800
committerHuang Peng <shawn.p.huang@gmail.com>2009-02-27 16:55:26 +0800
commit0eea8dfe33c68589406f71d411875b862ddfb377 (patch)
tree23de5ef2bb42cd67028a563c98d4db62ca93bf5e
parentbe022f73729a0405d1bdba7fb3ef2549ff418977 (diff)
downloadibus-0eea8dfe33c68589406f71d411875b862ddfb377.tar.gz
ibus-0eea8dfe33c68589406f71d411875b862ddfb377.tar.xz
ibus-0eea8dfe33c68589406f71d411875b862ddfb377.zip
Load default input method engine in right moment.
-rw-r--r--bus/dbusimpl.c2
-rw-r--r--bus/ibusimpl.c13
2 files changed, 12 insertions, 3 deletions
diff --git a/bus/dbusimpl.c b/bus/dbusimpl.c
index fff6364..3cc51dc 100644
--- a/bus/dbusimpl.c
+++ b/bus/dbusimpl.c
@@ -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",
diff --git a/bus/ibusimpl.c b/bus/ibusimpl.c
index 479ce5d..814e831 100644
--- a/bus/ibusimpl.c
+++ b/bus/ibusimpl.c
@@ -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;