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);

-- 


Reply via email to