summaryrefslogtreecommitdiffstats
path: root/bus/ibusimpl.c
diff options
context:
space:
mode:
Diffstat (limited to 'bus/ibusimpl.c')
-rw-r--r--bus/ibusimpl.c13
1 files changed, 10 insertions, 3 deletions
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;