forked from enlightenment/enlightenment
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:
parent
ef09d3e620
commit
70c6dc30d1
|
@ -5333,6 +5333,7 @@ e_comp_x_init(void)
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (e_comp->comp_type == E_PIXMAP_TYPE_X)
|
||||||
ecore_x_io_error_handler_set(_e_main_cb_x_fatal, NULL);
|
ecore_x_io_error_handler_set(_e_main_cb_x_fatal, NULL);
|
||||||
|
|
||||||
if (!ecore_x_composite_query())
|
if (!ecore_x_composite_query())
|
||||||
|
|
|
@ -252,6 +252,14 @@ fail:
|
||||||
return ECORE_CALLBACK_RENEW;
|
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
|
static void
|
||||||
xnotify(void *d EINA_UNUSED, Ecore_Thread *eth EINA_UNUSED, void *disp)
|
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));
|
assert(ecore_x_init_from_display(disp));
|
||||||
e_comp_x_init();
|
e_comp_x_init();
|
||||||
dnd_init();
|
dnd_init();
|
||||||
|
ecore_x_io_error_handler_set(xwayland_fatal, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Reference in New Issue