summaryrefslogtreecommitdiff
path: root/gtk/gtkcsscustomgadget.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2016-08-06 17:23:24 -0400
committerEmmanuele Bassi <ebassi@gnome.org>2016-10-18 11:49:12 +0100
commit62eb900b83fc63aba064d0b381142ea8534a71e6 (patch)
treeae399f5e4ba4305f0660957723b629fe14c7d6a7 /gtk/gtkcsscustomgadget.c
parent9d06ee637bc8716922ec45fd0d04a6a9fc6c3590 (diff)
downloadgtk+-62eb900b83fc63aba064d0b381142ea8534a71e6.tar.gz
gadget: Add a has_content vfunc
...and implement it for GtkCssGadget and GtkCssCustomGadget. This allows us to decide on a per-object basis if a custom gadget needs a render node for content or not.
Diffstat (limited to 'gtk/gtkcsscustomgadget.c')
-rw-r--r--gtk/gtkcsscustomgadget.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/gtk/gtkcsscustomgadget.c b/gtk/gtkcsscustomgadget.c
index 60a1881ba9..7cf9096eed 100644
--- a/gtk/gtkcsscustomgadget.c
+++ b/gtk/gtkcsscustomgadget.c
@@ -161,6 +161,14 @@ gtk_css_custom_gadget_draw (GtkCssGadget *gadget,
return GTK_CSS_GADGET_CLASS (gtk_css_custom_gadget_parent_class)->draw (gadget, cr, x, y, width, height);
}
+static gboolean
+gtk_css_custom_gadget_has_content (GtkCssGadget *gadget)
+{
+ GtkCssCustomGadgetPrivate *priv = gtk_css_custom_gadget_get_instance_private (GTK_CSS_CUSTOM_GADGET (gadget));
+
+ return priv->draw_func != NULL;
+}
+
static void
gtk_css_custom_gadget_finalize (GObject *object)
{
@@ -183,6 +191,7 @@ gtk_css_custom_gadget_class_init (GtkCssCustomGadgetClass *klass)
gadget_class->get_preferred_size = gtk_css_custom_gadget_get_preferred_size;
gadget_class->allocate = gtk_css_custom_gadget_allocate;
gadget_class->draw = gtk_css_custom_gadget_draw;
+ gadget_class->has_content = gtk_css_custom_gadget_has_content;
}
static void