diff --git a/gtk/gtkcssshadowvalue.c b/gtk/gtkcssshadowvalue.c index 671f4f0b6d..7f72698df2 100644 --- a/gtk/gtkcssshadowvalue.c +++ b/gtk/gtkcssshadowvalue.c @@ -331,9 +331,10 @@ gtk_css_shadow_value_start_drawing (const GtkCssValue *shadow, clip_radius = _gtk_cairo_blur_compute_pixels (radius); /* Create a larger surface to center the blur. */ - surface = cairo_image_surface_create (CAIRO_FORMAT_A8, - clip_rect.width + 2 * clip_radius, - clip_rect.height + 2 * clip_radius); + surface = cairo_surface_create_similar_image (cairo_get_target (cr), + CAIRO_FORMAT_A8, + clip_rect.width + 2 * clip_radius, + clip_rect.height + 2 * clip_radius); cairo_surface_set_device_offset (surface, clip_radius - clip_rect.x, clip_radius - clip_rect.y); blur_cr = cairo_create (surface); cairo_set_user_data (blur_cr, &shadow_key, cairo_reference (cr), (cairo_destroy_func_t) cairo_destroy);