From 95e2d26d03bd2a6c8381d772ad3bb61af73d582a Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Wed, 28 Aug 2013 18:07:46 -0400 Subject: [PATCH] window-actor: Mark all Wayland clients as argb32 https://bugzilla.gnome.org/show_bug.cgi?id=707019 --- src/compositor/meta-window-actor.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/compositor/meta-window-actor.c b/src/compositor/meta-window-actor.c index 499960276..c599ac506 100644 --- a/src/compositor/meta-window-actor.c +++ b/src/compositor/meta-window-actor.c @@ -357,16 +357,25 @@ meta_window_actor_constructed (GObject *object) Window xwindow = priv->xwindow; MetaWindow *window = priv->window; Display *xdisplay = meta_display_get_xdisplay (display); - XRenderPictFormat *format; if (!meta_is_wayland_compositor ()) priv->damage = XDamageCreate (xdisplay, xwindow, XDamageReportBoundingBox); - format = XRenderFindVisualFormat (xdisplay, window->xvisual); + if (window->client_type == META_WINDOW_CLIENT_TYPE_X11) + { + XRenderPictFormat *format; - if (format && format->type == PictTypeDirect && format->direct.alphaMask) - priv->argb32 = TRUE; + format = XRenderFindVisualFormat (xdisplay, window->xvisual); + + if (format && format->type == PictTypeDirect && format->direct.alphaMask) + priv->argb32 = TRUE; + } + else + { + /* XXX: parse shm formats to determine argb32 */ + priv->argb32 = TRUE; + } if (!priv->actor) {