From e96c485afae622ad12ab3cdb3534ae7d8ccde741 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 1 Nov 2016 03:57:42 +0100 Subject: [PATCH] widget: Create render node with correct bounds We want a render node where (0,0) is the top left of the widget. However, we need to account for the clip origin not matching the allocation origin. --- gtk/gtkwidget.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 0293784f04..1fd5d7ee0e 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -15624,12 +15624,15 @@ gtk_widget_create_render_node (GtkWidget *widget, const char *name) { GskRenderNode *res = gsk_renderer_create_render_node (renderer); - GtkAllocation clip; + GtkAllocation clip, allocation; graphene_rect_t bounds; gtk_widget_get_clip (widget, &clip); + gtk_widget_get_allocation (widget, &allocation); - graphene_rect_init (&bounds, 0, 0, clip.width, clip.height); + graphene_rect_init (&bounds, + allocation.x - clip.x, allocation.y - clip.y, + clip.width, clip.height); gsk_render_node_set_name (res, name); gsk_render_node_set_bounds (res, &bounds);