diff options
author | Huang Peng <shawn.p.huang@gmail.com> | 2009-02-27 16:55:26 +0800 |
---|---|---|
committer | Huang Peng <shawn.p.huang@gmail.com> | 2009-02-27 16:55:26 +0800 |
commit | 0eea8dfe33c68589406f71d411875b862ddfb377 (patch) | |
tree | 23de5ef2bb42cd67028a563c98d4db62ca93bf5e /bus/ibusimpl.c | |
parent | be022f73729a0405d1bdba7fb3ef2549ff418977 (diff) | |
download | ibus-0eea8dfe33c68589406f71d411875b862ddfb377.tar.gz ibus-0eea8dfe33c68589406f71d411875b862ddfb377.tar.xz ibus-0eea8dfe33c68589406f71d411875b862ddfb377.zip |
Load default input method engine in right moment.
Diffstat (limited to 'bus/ibusimpl.c')
-rw-r--r-- | bus/ibusimpl.c | 13 |
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; |