Hi, Is there some way by which we can make global engine immortal? So if there is only one engine running, which is the global engine, can the global engine be restarted so that the user input is not interrupted?
There seems to be an issue with bus_ibus_impl_check_global_engine function. It checks if the current global engine is not removed by calling _find_engine_desc_by_name and this function checks the global engine in ibus->register_engine_list and ibus->engine_list. If the global engine component crashes, then the global engine will be removed from ibus->register_engine_list in _component_destroy_cb but it will not be removed from ibus->engine_list unless the preload engine list is changed. Thus, _find_engine_desc_by_name is able to find the crashed global engine in ibus->engine_list and bus_ibus_impl_check_global_engine function returns assuming global engine is not removed. On changing this and setting ibus->global_engine_name=NULL when global engine crashes, the global engine correctly restarts. But the input context engine is set to NULL and context is disabled in the function _engine_destroy_cb. Thus, the current input context is not using the global engine. Please let me know if there is a way to restart global engine on crash and set the current input context to use the same. Thanks & regards, Ria -- You received this message because you are subscribed to the Google Groups "ibus-devel" group. iBus project web page: http://code.google.com/p/ibus/ iBus dev group: http://groups.google.com/group/ibus-devel?hl=en
