diff options
author | Michael Natterer <mitch@gimp.org> | 2010-10-20 17:44:23 +0200 |
---|---|---|
committer | Michael Natterer <mitch@gimp.org> | 2010-10-20 17:44:23 +0200 |
commit | 0f2d1547f85159d25131db0fdffaebfa22a084ce (patch) | |
tree | 99666ef0e7f192db9d320189dd9f30e02055e88e /gdk/gdkoffscreenwindow.c | |
parent | c2f29f2cefd7d880b1c1357070c8444a1fbb7b33 (diff) | |
download | gtk+-0f2d1547f85159d25131db0fdffaebfa22a084ce.tar.gz |
gdk: add alpha to the offscreen window's surface if its visual is RGBA
Diffstat (limited to 'gdk/gdkoffscreenwindow.c')
-rw-r--r-- | gdk/gdkoffscreenwindow.c | 13 |
1 files 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); |