Commit 88d02b8f authored by Matthias Clasen's avatar Matthias Clasen Committed by Emmanuele Bassi

Covert GtkOverlay to indirect rendering

There is no gadget, so we use the gtk_widget_create_render_node
function for the first time here.
parent 8c971711
......@@ -24,6 +24,8 @@
#include "gtkbuildable.h"
#include "gtkscrolledwindow.h"
#include "gtkmarshalers.h"
#include "gtkwidgetprivate.h"
#include "gtkcontainerprivate.h"
#include "gtkprivate.h"
#include "gtkintl.h"
......@@ -482,6 +484,20 @@ gtk_overlay_unmap (GtkWidget *widget)
GTK_WIDGET_CLASS (gtk_overlay_parent_class)->unmap (widget);
}
static GskRenderNode *
gtk_overlay_get_render_node (GtkWidget *widget,
GskRenderer *renderer)
{
GskRenderNode *res = gtk_widget_create_render_node (widget, renderer, G_OBJECT_TYPE_NAME (widget));
if (res == NULL)
return NULL;
gtk_container_propagate_render_node (GTK_CONTAINER (widget), renderer, res);
return res;
}
static void
gtk_overlay_remove (GtkContainer *container,
GtkWidget *widget)
......@@ -738,7 +754,6 @@ gtk_overlay_get_child_property (GtkContainer *container,
}
}
static void
gtk_overlay_class_init (GtkOverlayClass *klass)
{
......@@ -751,6 +766,7 @@ gtk_overlay_class_init (GtkOverlayClass *klass)
widget_class->unrealize = gtk_overlay_unrealize;
widget_class->map = gtk_overlay_map;
widget_class->unmap = gtk_overlay_unmap;
widget_class->get_render_node = gtk_overlay_get_render_node;
container_class->remove = gtk_overlay_remove;
container_class->forall = gtk_overlay_forall;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment