surface-actor-x11: Only unredirect fullscreen windows for full damage
When deciding if a window should be unredirected because it was causing fullscreen damage in the past, it was not considered whether the window is still fullscreen. This could result in a floating window being unredirected if it was chosen for unredirection because of _NET_WM_BYPASS_COMPOSITOR = 1 and was previously fullscreened for >= 100 frames, long enough to change does_full_damage, before getting unfullscreened. Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2434 Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2651>
This commit is contained in:
parent
cefa4044d1
commit
46fc94b67f
@ -259,7 +259,7 @@ meta_surface_actor_x11_should_unredirect (MetaSurfaceActorX11 *self)
|
|||||||
if (!meta_surface_actor_x11_is_opaque (META_SURFACE_ACTOR (self)))
|
if (!meta_surface_actor_x11_is_opaque (META_SURFACE_ACTOR (self)))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
if (!self->does_full_damage &&
|
if (!(meta_window_is_fullscreen (self->window) && self->does_full_damage) &&
|
||||||
!meta_window_is_override_redirect (self->window))
|
!meta_window_is_override_redirect (self->window))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user