snapshot: Compute correct size in gtk_snapshot_to_paintable()
authorBenjamin Otte <otte@redhat.com>
Tue, 19 Jun 2018 17:40:37 +0000 (19:40 +0200)
committerBenjamin Otte <otte@redhat.com>
Tue, 19 Jun 2018 17:44:17 +0000 (19:44 +0200)
Also, do actually respect the passed in size argument if it isn't NULL.

Fixes text being cut off inside DND icons.

gtk/gtksnapshot.c

index 9d7044679197a52dadfb29982f1072b9da240c9e..ebb885e4fff4550a2602bb55790c61d6966aa937 100644 (file)
@@ -1115,9 +1115,19 @@ gtk_snapshot_to_paintable (GtkSnapshot           *snapshot,
   graphene_rect_t bounds;
 
   node = gtk_snapshot_to_node (snapshot);
-  gsk_render_node_get_bounds (node, &bounds);
+  if (size)
+    {
+      graphene_size_init_from_size (&bounds.size, size);
+    }
+  else
+    {
+      gsk_render_node_get_bounds (node, &bounds);
+      bounds.size.width += bounds.origin.x;
+      bounds.size.height += bounds.origin.y;
+    }
   bounds.origin.x = 0;
   bounds.origin.y = 0;
+
   paintable = gtk_render_node_paintable_new (node, &bounds);
   gsk_render_node_unref (node);