Product: Fedora https://bugzilla.redhat.com/show_bug.cgi?id=947318
fujiwara tfujiwar@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED
--- Comment #1 from fujiwara tfujiwar@redhat.com --- Thanks for the report.
I thought if this problem can be handled in the client applications and checked StIMText in gnome-shell and it seems StIMText does not touch the bus connection.
Probably the following is the suggested fix.
--- ibus-1.5.1/client/gtk2/ibusimcontext.c.orig 2013-04-09 16:16:38.288866593 +0900 +++ ibus-1.5.1/client/gtk2/ibusimcontext.c 2013-04-09 17:17:34.137417132 +0900 @@ -1467,6 +1467,25 @@ _ibus_context_destroy_cb (IBusInputConte
g_signal_emit (ibusimcontext, _signal_preedit_changed_id, 0); g_signal_emit (ibusimcontext, _signal_preedit_end_id, 0); + + /* This destroy callback can be called when the client app connects to + * IBusBus and the app is disconnected. E.g. gnome-shell connects to + * IBusBus and it has StEntry input text and ibus can be restarted. + * And each ibusimcontext also needs to reconnect IBusBus here. */ + if (!ibus_bus_is_connected (_bus)) { + g_signal_handlers_disconnect_by_func (_bus, + G_CALLBACK (_bus_connected_cb), + ibusimcontext); + g_object_unref (_bus); + _bus = ibus_bus_new_async (); + + if (ibus_bus_is_connected (_bus)) { + _create_input_context (ibusimcontext); + } + + g_signal_connect (_bus, "connected", G_CALLBACK (_bus_connected_cb), + ibusimcontext); + } }
static void