1
0
Fork 0

x11-display: Make subwindow redirection call mode specific

This means that for X11 sessions we'll do it before any windows are
mapped, and before any plugin implementation is started. Doing it before
a plugin is started is important, because things that the plugin does
during startup can have consequences on how compositing on Xorg works.

For the Xwayland case, we'll do it relatively in the setup phase. It
appears to have been harmless to do it later in the post-opened signal,
but there is no harm in doing it as one of the earlier steps.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3089
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3329>
This commit is contained in:
Jonas Ådahl 2023-10-20 15:44:29 +08:00 committed by Florian Müllner
parent 1ccf2cfb56
commit de31822ecc
3 changed files with 3 additions and 1 deletions

View file

@ -188,6 +188,8 @@ meta_compositor_x11_manage (MetaCompositor *compositor,
compositor_x11->have_x11_sync_object = meta_sync_ring_init (xdisplay);
meta_x11_display_redirect_windows (x11_display, display);
return TRUE;
}

View file

@ -1180,6 +1180,7 @@ on_x11_display_setup (MetaDisplay *display,
{
MetaX11Display *x11_display = meta_display_get_x11_display (display);
meta_x11_display_redirect_windows (x11_display, display);
meta_xwayland_init_dnd (x11_display);
meta_xwayland_init_xrandr (manager, x11_display);
}

View file

@ -307,7 +307,6 @@ on_x11_display_opened (MetaX11Display *x11_display,
MetaDisplay *display)
{
meta_display_manage_all_xwindows (display);
meta_x11_display_redirect_windows (x11_display, display);
}
static void