eventbox: Implement snapshot()

This commit is contained in:
Benjamin Otte 2016-12-15 10:45:21 +01:00
parent 8900d6cc45
commit 182dad304a

View File

@ -30,6 +30,7 @@
#include "gtkprivate.h" #include "gtkprivate.h"
#include "gtkrender.h" #include "gtkrender.h"
#include "gtksizerequest.h" #include "gtksizerequest.h"
#include "gtksnapshot.h"
/** /**
@ -61,8 +62,8 @@ static void gtk_event_box_map (GtkWidget *widget);
static void gtk_event_box_unmap (GtkWidget *widget); static void gtk_event_box_unmap (GtkWidget *widget);
static void gtk_event_box_size_allocate (GtkWidget *widget, static void gtk_event_box_size_allocate (GtkWidget *widget,
GtkAllocation *allocation); GtkAllocation *allocation);
static gboolean gtk_event_box_draw (GtkWidget *widget, static void gtk_event_box_snapshot (GtkWidget *widget,
cairo_t *cr); GtkSnapshot *snapshot);
static void gtk_event_box_set_property (GObject *object, static void gtk_event_box_set_property (GObject *object,
guint prop_id, guint prop_id,
const GValue *value, const GValue *value,
@ -88,7 +89,7 @@ gtk_event_box_class_init (GtkEventBoxClass *class)
widget_class->map = gtk_event_box_map; widget_class->map = gtk_event_box_map;
widget_class->unmap = gtk_event_box_unmap; widget_class->unmap = gtk_event_box_unmap;
widget_class->size_allocate = gtk_event_box_size_allocate; widget_class->size_allocate = gtk_event_box_size_allocate;
widget_class->draw = gtk_event_box_draw; widget_class->snapshot = gtk_event_box_snapshot;
g_object_class_install_property (gobject_class, g_object_class_install_property (gobject_class,
PROP_VISIBLE_WINDOW, PROP_VISIBLE_WINDOW,
@ -517,9 +518,9 @@ gtk_event_box_size_allocate (GtkWidget *widget,
gtk_widget_size_allocate_with_baseline (child, &child_allocation, baseline); gtk_widget_size_allocate_with_baseline (child, &child_allocation, baseline);
} }
static gboolean static void
gtk_event_box_draw (GtkWidget *widget, gtk_event_box_snapshot (GtkWidget *widget,
cairo_t *cr) GtkSnapshot *snapshot)
{ {
if (gtk_widget_get_has_window (widget)) if (gtk_widget_get_has_window (widget))
{ {
@ -527,15 +528,13 @@ gtk_event_box_draw (GtkWidget *widget,
context = gtk_widget_get_style_context (widget); context = gtk_widget_get_style_context (widget);
gtk_render_background (context, cr, 0, 0, gtk_snapshot_render_background (snapshot, context, 0, 0,
gtk_widget_get_allocated_width (widget), gtk_widget_get_allocated_width (widget),
gtk_widget_get_allocated_height (widget)); gtk_widget_get_allocated_height (widget));
gtk_render_frame (context, cr, 0, 0, gtk_snapshot_render_frame (snapshot, context, 0, 0,
gtk_widget_get_allocated_width (widget), gtk_widget_get_allocated_width (widget),
gtk_widget_get_allocated_height (widget)); gtk_widget_get_allocated_height (widget));
} }
GTK_WIDGET_CLASS (gtk_event_box_parent_class)->draw (widget, cr); GTK_WIDGET_CLASS (gtk_event_box_parent_class)->snapshot (widget, snapshot);
return FALSE;
} }