xwayland: Pass the manager object to XSetIOErrorExitHandler

This means we can avoid going through global singletons in the handler.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1796>
This commit is contained in:
Jonas Ådahl 2021-03-23 16:43:52 +01:00
parent 90ad8b88d4
commit 69f9b36643

View File

@ -635,8 +635,7 @@ static void
x_io_error_exit (Display *display,
void *data)
{
MetaWaylandCompositor *compositor = meta_wayland_compositor_get_default ();
MetaXWaylandManager *manager = &compositor->xwayland_manager;
MetaXWaylandManager *manager = data;
g_warning ("Xwayland just died, attempting to recover");
manager->xserver_grace_period_id =
@ -1271,7 +1270,7 @@ meta_xwayland_complete_init (MetaDisplay *display,
*/
XSetIOErrorHandler (x_io_error);
#ifdef HAVE_XSETIOERROREXITHANDLER
XSetIOErrorExitHandler (xdisplay, x_io_error_exit, display);
XSetIOErrorExitHandler (xdisplay, x_io_error_exit, manager);
#endif
g_signal_connect (display, "x11-display-closing",