a fatal error with xwayland is not a fatal error for the compositor,
so this should not result in a dead session
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())
{
}
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)
{
if (!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