[mutter] window-actor/wayland: Only use scanout for opaque non-fullscreen windows
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] window-actor/wayland: Only use scanout for opaque non-fullscreen windows
- Date: Tue, 17 May 2022 11:25:11 +0000 (UTC)
commit 54ba64b9f22f02893bc8c593358d6ace842be40c
Author: Sebastian Keller <skeller gnome org>
Date: Wed May 11 22:49:08 2022 +0200
window-actor/wayland: Only use scanout for opaque non-fullscreen windows
This could for example happen with the client window created by the
desktop-icons-ng extension which spans the entire desktop, but is not a
fullscreen window and uses transparency
On Wayland only opaque surfaces or transparent surfaces of fullscreen
windows can be used for direct scanout.
Related: https://gitlab.gnome.org/GNOME/mutter/-/issues/2263
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2409>
src/compositor/meta-window-actor-wayland.c | 6 ++++++
1 file changed, 6 insertions(+)
---
diff --git a/src/compositor/meta-window-actor-wayland.c b/src/compositor/meta-window-actor-wayland.c
index 4b87fd11fb..e1f3410483 100644
--- a/src/compositor/meta-window-actor-wayland.c
+++ b/src/compositor/meta-window-actor-wayland.c
@@ -93,6 +93,7 @@ meta_window_actor_wayland_get_scanout_candidate (MetaWindowActor *actor)
{
ClutterActor *child_actor;
MetaSurfaceActor *topmost_surface_actor;
+ MetaWindow *window;
child_actor = clutter_actor_get_last_child (CLUTTER_ACTOR (actor));
if (!child_actor || !META_IS_SURFACE_ACTOR_WAYLAND (child_actor))
@@ -100,6 +101,11 @@ meta_window_actor_wayland_get_scanout_candidate (MetaWindowActor *actor)
topmost_surface_actor = META_SURFACE_ACTOR (child_actor);
+ window = meta_window_actor_get_meta_window (actor);
+ if (!meta_window_is_fullscreen (window) &&
+ !meta_surface_actor_is_opaque (topmost_surface_actor))
+ return NULL;
+
return topmost_surface_actor;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]