rendernode: Set EXTEND_PAD when drawing textures
authorBenjamin Otte <otte@redhat.com>
Fri, 10 May 2019 00:54:24 +0000 (02:54 +0200)
committerBenjamin Otte <otte@redhat.com>
Sun, 12 May 2019 13:41:53 +0000 (15:41 +0200)
gsk/gskrendernodeimpl.c

index f6200f15602e802ad1ad767ee3f61c43d2e33c18..a5f0c03c73b34ac9e5b551a6600109db79299e38 100644 (file)
@@ -636,6 +636,7 @@ gsk_texture_node_draw (GskRenderNode *node,
 {
   GskTextureNode *self = (GskTextureNode *) node;
   cairo_surface_t *surface;
+  cairo_pattern_t *pattern;
 
   surface = gdk_texture_download_surface (self->texture);
 
@@ -646,11 +647,14 @@ gsk_texture_node_draw (GskRenderNode *node,
                node->bounds.size.width / gdk_texture_get_width (self->texture),
                node->bounds.size.height / gdk_texture_get_height (self->texture));
 
-  cairo_set_source_surface (cr, surface, 0, 0);
+  pattern = cairo_pattern_create_for_surface (surface);
+  cairo_pattern_set_extend (pattern, CAIRO_EXTEND_PAD);
+  cairo_set_source (cr, pattern);
   cairo_paint (cr);
 
   cairo_restore (cr);
 
+  cairo_pattern_destroy (pattern);
   cairo_surface_destroy (surface);
 }