widget: Cache the render node
authorBenjamin Otte <otte@redhat.com>
Tue, 20 Mar 2018 17:55:33 +0000 (18:55 +0100)
committerBenjamin Otte <otte@redhat.com>
Thu, 5 Apr 2018 12:56:38 +0000 (14:56 +0200)
commit29111a16d4e3ef459b7974fa7d795b567fadb5e1
tree337a713c21d0c6d2a9e505ea3d256fd862fd78b3
parent271820b67741ff7b688dd08daa7ef8d83279189b
widget: Cache the render node

This requires a bunch of refactorings:

1. Don't pass the current clip region to gtk_widget_snapshot()
   so we don't create full widget contents
3. Have a widget->priv->draw_needed that we invalidate on every
   queue_draw() call and set on every snapshot()
2. In queue_draw(), walk the widget chain to invalidate the
   render nodes of all parents
gtk/gtksnapshot.c
gtk/gtksnapshotprivate.h
gtk/gtkwidget.c
gtk/gtkwidgetprivate.h