discomfitor pushed a commit to branch enlightenment-0.21.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=bd5c107e463147025fbdc750c4fd9cfeb9c845fc

commit bd5c107e463147025fbdc750c4fd9cfeb9c845fc
Author: Marcel Hollerbach <[email protected]>
Date:   Wed Aug 3 19:03:44 2016 +0200

    xwayland: show the dialog after ecore_wl2 is in sync
    
    otherwise ecore_wl2 could produce crashes.
---
 src/modules/xwayland/e_mod_main.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/modules/xwayland/e_mod_main.c 
b/src/modules/xwayland/e_mod_main.c
index 3e5c895..b113e27 100644
--- a/src/modules/xwayland/e_mod_main.c
+++ b/src/modules/xwayland/e_mod_main.c
@@ -9,6 +9,7 @@
 EINTERN void dnd_init(void);
 EINTERN void dnd_shutdown(void);
 
+static Ecore_Event_Handler *sync_handler;
 static E_Module *xwl_init(E_Module *m);
 static void xwl_shutdown(void);
 
@@ -337,9 +338,13 @@ setup_lock(void)
 }
 
 static Eina_Bool
-error_dialog()
+_cb_sync_done(void *data EINA_UNUSED, int type EINA_UNUSED, void *event)
 {
    e_util_dialog_internal(_("Error"), _("Cannot launch XWayland from X11 
display."));
+
+   ecore_event_handler_del(sync_handler);
+   sync_handler = NULL;
+
    return EINA_FALSE;
 }
 
@@ -353,7 +358,7 @@ xwl_init(E_Module *m)
 
    if (getenv("DISPLAY"))
      {
-        ecore_timer_add(1.0, error_dialog, NULL);
+        sync_handler = ecore_event_handler_add(ECORE_WL2_EVENT_SYNC_DONE, 
_cb_sync_done, NULL);
         return NULL;
      }
 

-- 


Reply via email to