widget: Reorder gtk_widget_render()
authorBenjamin Otte <otte@redhat.com>
Tue, 27 Mar 2018 23:00:07 +0000 (01:00 +0200)
committerBenjamin Otte <otte@redhat.com>
Thu, 5 Apr 2018 12:56:38 +0000 (14:56 +0200)
Now that we don't clip the created render nodes anymore, we don't have
to compute the clip region beforehand.

So snapshot the render nodes before initializing the renderer.

gtk/gtkwidget.c

index 8b99176ee124d5af108fed8b6502fa7c79d804a3..d6b91417e33df4821ed62de167c222b05421ba6a 100644 (file)
@@ -14059,15 +14059,16 @@ gtk_widget_render (GtkWidget            *widget,
   if (renderer == NULL)
     return;
 
-  context = gsk_renderer_begin_draw_frame (renderer, region);
-
   snapshot = gtk_snapshot_new (should_record_names (widget, renderer),
                                NULL,
                                "Render<%s>", G_OBJECT_TYPE_NAME (widget));
   gtk_widget_snapshot (widget, snapshot);
   root = gtk_snapshot_free_to_node (snapshot);
+
   if (root != NULL)
     {
+      context = gsk_renderer_begin_draw_frame (renderer, region);
+
       gtk_inspector_record_render (widget,
                                    renderer,
                                    surface,
@@ -14077,10 +14078,9 @@ gtk_widget_render (GtkWidget            *widget,
 
       gsk_renderer_render (renderer, root, context);
       gsk_render_node_unref (root);
-    }
-
 
-  gsk_renderer_end_draw_frame (renderer, context);
+      gsk_renderer_end_draw_frame (renderer, context);
+    }
 }
 
 /**