diff options
author | Marcel Hollerbach <marcel-hollerbach@t-online.de> | 2016-08-03 19:03:44 +0200 |
---|---|---|
committer | Marcel Hollerbach <marcel-hollerbach@t-online.de> | 2016-08-04 16:38:51 +0200 |
commit | a484ee1df37e34222f1aca90d4bddca51b417e14 (patch) | |
tree | 1fff89c1b6ea5feb299bdf170345064f9b5e2050 | |
parent | 10b753bf7557b83c108536228d69b900ce360773 (diff) | |
download | enlightenment-a484ee1df37e34222f1aca90d4bddca51b417e14.tar.gz |
xwayland: show the dialog after ecore_wl2 is in sync
otherwise ecore_wl2 could produce crashes.
-rw-r--r-- | src/modules/xwayland/e_mod_main.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/modules/xwayland/e_mod_main.c b/src/modules/xwayland/e_mod_main.c index 3e5c895f0f..b113e270de 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; } |