use separate handler for x11 fatal errors when using xwayland

a fatal error with xwayland is not a fatal error for the compositor,
so this should not result in a dead session
This commit is contained in:
Mike Blumenkrantz 2015-11-24 15:34:42 -05:00
parent ef09d3e620
commit 70c6dc30d1
2 changed files with 11 additions and 1 deletions

View File

@ -5333,7 +5333,8 @@ e_comp_x_init(void)
return EINA_FALSE;
}
ecore_x_io_error_handler_set(_e_main_cb_x_fatal, NULL);
if (e_comp->comp_type == E_PIXMAP_TYPE_X)
ecore_x_io_error_handler_set(_e_main_cb_x_fatal, NULL);
if (!ecore_x_composite_query())
{

View File

@ -252,6 +252,14 @@ fail:
return ECORE_CALLBACK_RENEW;
}
static void
xwayland_fatal(void *d EINA_UNUSED)
{
/* on xwayland fatal, attempt to restart it */
e_modapi_shutdown(NULL);
e_modapi_init(NULL);
}
static void
xnotify(void *d EINA_UNUSED, Ecore_Thread *eth EINA_UNUSED, void *disp)
{
@ -263,6 +271,7 @@ xnotify(void *d EINA_UNUSED, Ecore_Thread *eth EINA_UNUSED, void *disp)
assert(ecore_x_init_from_display(disp));
e_comp_x_init();
dnd_init();
ecore_x_io_error_handler_set(xwayland_fatal, NULL);
}
static void