From 0f2d1547f85159d25131db0fdffaebfa22a084ce Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Wed, 20 Oct 2010 17:44:23 +0200 Subject: [PATCH] gdk: add alpha to the offscreen window's surface if its visual is RGBA --- gdk/gdkoffscreenwindow.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/gdk/gdkoffscreenwindow.c b/gdk/gdkoffscreenwindow.c index 81f3bbc599..f9be9ad6c9 100644 --- a/gdk/gdkoffscreenwindow.c +++ b/gdk/gdkoffscreenwindow.c @@ -156,16 +156,19 @@ _gdk_offscreen_window_create_surface (GdkWindow *offscreen, GdkWindowObject *private = (GdkWindowObject *) offscreen; cairo_surface_t *similar; cairo_surface_t *surface; + cairo_content_t content = CAIRO_CONTENT_COLOR; g_return_val_if_fail (GDK_IS_OFFSCREEN_WINDOW (private->impl), NULL); similar = _gdk_drawable_ref_cairo_surface ((GdkWindow *)private->parent); - surface = cairo_surface_create_similar (similar, - /* FIXME: use visual */ - CAIRO_CONTENT_COLOR, - width, - height); + if (gdk_window_get_visual (offscreen) == + gdk_screen_get_rgba_visual (gdk_window_get_screen (offscreen))) + { + content = CAIRO_CONTENT_COLOR_ALPHA; + } + + surface = cairo_surface_create_similar (similar, content, width, height); cairo_surface_destroy (similar);