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,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())
|
||||
{
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue