core: Fix map transitions for X11 windows on Wayland

We are attempting to show windows that do not yet have a
surface/buffer, this makes GNOME Shell avoid transitions
for these windows.

Since on Wayland X11 windows are also Wayland surfaces,
this check is also valid for these, and is thus made more
generic to also cater for these windows.

Eventually, meta_window_update_visibility() is called
when the surface gets its buffer, so the window can be
neatly animated.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2611
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2975>
This commit is contained in:
Carlos Garnacho 2023-04-21 21:07:01 +02:00
parent 5eb17a362e
commit 18be74edeb

View File

@ -1695,10 +1695,10 @@ meta_window_should_be_showing_on_workspace (MetaWindow *window,
MetaWorkspace *workspace) MetaWorkspace *workspace)
{ {
#ifdef HAVE_WAYLAND #ifdef HAVE_WAYLAND
if (window->client_type == META_WINDOW_CLIENT_TYPE_WAYLAND) if (meta_is_wayland_compositor ())
{ {
MetaWaylandSurface *surface = meta_window_get_wayland_surface (window); MetaWaylandSurface *surface = meta_window_get_wayland_surface (window);
if (!meta_wayland_surface_get_buffer (surface)) if (!surface || !meta_wayland_surface_get_buffer (surface))
return FALSE; return FALSE;
} }
#endif #endif