diff options
author | Dor Askayo <dor.askayo@gmail.com> | 2022-07-16 09:38:41 +0300 |
---|---|---|
committer | Marge Bot <marge-bot@gnome.org> | 2022-08-01 21:05:04 +0000 |
commit | 66e938bc34b98f0898f3143b84bcda2541a7a655 (patch) | |
tree | e66f1b3edf7fcc1875dc8325ab4cff18b397a7a4 | |
parent | 259a9998d80bfad0de253b585e6dd8540f12c687 (diff) | |
download | mutter-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.c | 3 | ||||
-rw-r--r-- | src/compositor/meta-surface-actor-wayland.c | 6 |
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); |