summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDor Askayo <dor.askayo@gmail.com>2022-07-16 09:38:41 +0300
committerMarge Bot <marge-bot@gnome.org>2022-08-01 21:05:04 +0000
commit66e938bc34b98f0898f3143b84bcda2541a7a655 (patch)
treee66f1b3edf7fcc1875dc8325ab4cff18b397a7a4
parent259a9998d80bfad0de253b585e6dd8540f12c687 (diff)
downloadmutter-66e938bc34b98f0898f3143b84bcda2541a7a655.tar.gz
compositor/native: Don't allow obscured surface actors as scanout candidates
This check was previously done after it was already determined that a surface actor is suitable for scanout. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2526>
-rw-r--r--src/compositor/meta-compositor-native.c3
-rw-r--r--src/compositor/meta-surface-actor-wayland.c6
2 files changed, 3 insertions, 6 deletions
diff --git a/src/compositor/meta-compositor-native.c b/src/compositor/meta-compositor-native.c
index a156be7da..e2614f6f7 100644
--- a/src/compositor/meta-compositor-native.c
+++ b/src/compositor/meta-compositor-native.c
@@ -119,6 +119,9 @@ maybe_assign_primary_plane (MetaCompositor *compositor)
if (!surface_actor)
goto done;
+ if (meta_surface_actor_is_obscured (surface_actor))
+ goto done;
+
surface_actor_wayland = META_SURFACE_ACTOR_WAYLAND (surface_actor);
surface = meta_surface_actor_wayland_get_surface (surface_actor_wayland);
if (!surface)
diff --git a/src/compositor/meta-surface-actor-wayland.c b/src/compositor/meta-surface-actor-wayland.c
index 1dad50cd7..f6e8f8432 100644
--- a/src/compositor/meta-surface-actor-wayland.c
+++ b/src/compositor/meta-surface-actor-wayland.c
@@ -72,12 +72,6 @@ meta_surface_actor_wayland_try_acquire_scanout (MetaSurfaceActorWayland *self,
MetaWaylandSurface *surface;
CoglScanout *scanout;
- /* If the actor appears to be obscured, need to go through the normal paint
- * machinery to ensure the unobscured region is up to date
- */
- if (meta_surface_actor_is_obscured (META_SURFACE_ACTOR (self)))
- return NULL;
-
surface = meta_surface_actor_wayland_get_surface (self);
g_return_val_if_fail (surface, NULL);