diff options
author | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2019-08-21 16:09:37 +0300 |
---|---|---|
committer | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2019-08-22 18:21:32 +0300 |
commit | 55dacbf595590aa656a04c4d516ac8f3c1fbbd27 (patch) | |
tree | 2793eb5a3ff8cc81cd95e3ad3feed818418f6c59 /src/compositor | |
parent | 93340f5b796b64061cad0fea8872d68956c5b842 (diff) | |
download | metacity-55dacbf595590aa656a04c4d516ac8f3c1fbbd27.tar.gz |
xrender: use toplevel visual
Diffstat (limited to 'src/compositor')
-rw-r--r-- | src/compositor/meta-compositor-xrender.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/compositor/meta-compositor-xrender.c b/src/compositor/meta-compositor-xrender.c index 284dbdcf..ed31da71 100644 --- a/src/compositor/meta-compositor-xrender.c +++ b/src/compositor/meta-compositor-xrender.c @@ -174,6 +174,15 @@ struct _MetaCompositorXRender G_DEFINE_TYPE (MetaCompositorXRender, meta_compositor_xrender, META_TYPE_COMPOSITOR) +static Visual * +get_toplevel_xvisual (MetaWindow *window) +{ + if (window->frame != NULL) + return meta_frame_get_xvisual (window->frame); + + return window->xvisual; +} + static Window get_toplevel_xwindow (MetaWindow *window) { @@ -1232,7 +1241,7 @@ get_window_format (Display *xdisplay, { XRenderPictFormat *format; - format = XRenderFindVisualFormat (xdisplay, cw->window->xvisual); + format = XRenderFindVisualFormat (xdisplay, get_toplevel_xvisual (cw->window)); if (!format) { @@ -1952,7 +1961,7 @@ determine_mode (MetaCompositorXRender *xrender, cw->alpha_pict = None; } - format = XRenderFindVisualFormat (xdisplay, cw->window->xvisual); + format = XRenderFindVisualFormat (xdisplay, get_toplevel_xvisual (cw->window)); if ((format && format->type == PictTypeDirect && format->direct.alphaMask) || cw->window->opacity != (guint) OPAQUE) @@ -2795,7 +2804,7 @@ meta_compositor_xrender_get_window_surface (MetaCompositor *compositor, height = shaded ? cw->shaded.height : cw->rect.height; back_surface = cairo_xlib_surface_create (xdisplay, back_pixmap, - cw->window->xvisual, + get_toplevel_xvisual (cw->window), width, height); window_surface = cairo_surface_create_similar (back_surface, |