derekf pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e863dcaae7d3017bc3548d2749d12f30cd21ed6d
commit e863dcaae7d3017bc3548d2749d12f30cd21ed6d Author: Derek Foreman <[email protected]> Date: Wed Nov 15 09:53:18 2017 -0600 ecore_wl2: Create xkb_context before compositor connection We really need this to exist before potentially processing seat/keyboard stuff in _ecore_wl2_display_connect() --- src/lib/ecore_wl2/ecore_wl2_display.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/lib/ecore_wl2/ecore_wl2_display.c b/src/lib/ecore_wl2/ecore_wl2_display.c index eb7252a80e..b6382b2222 100644 --- a/src/lib/ecore_wl2/ecore_wl2_display.c +++ b/src/lib/ecore_wl2/ecore_wl2_display.c @@ -885,24 +885,23 @@ ecore_wl2_display_connect(const char *name) ewd->globals = eina_hash_int32_new(_cb_globals_hash_del); + ewd->xkb_context = xkb_context_new(0); + if (!ewd->xkb_context) goto context_err; + /* check server display hash and match on pid. If match, skip sync */ if (!_ecore_wl2_display_connect(ewd, _ecore_wl2_display_sync_get())) goto connect_err; - ewd->xkb_context = xkb_context_new(0); - if (!ewd->xkb_context) goto context_err; - /* add this new client display to hash */ eina_hash_add(_client_displays, ewd->name, ewd); return ewd; -context_err: - ecore_main_fd_handler_del(ewd->fd_hdl); - wl_registry_destroy(ewd->wl.registry); - wl_display_disconnect(ewd->wl.display); - connect_err: + xkb_context_unref(ewd->xkb_context); + ewd->xkb_context = NULL; + +context_err: eina_hash_free(ewd->globals); free(ewd->name); free(ewd); --
