[gtk+] gadget: Add queue_resize/allocate/draw() functions
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] gadget: Add queue_resize/allocate/draw() functions
- Date: Mon, 11 Jan 2016 16:30:49 +0000 (UTC)
commit f1e277969a7f7f45b840823a641fc43566e3ebfa
Author: Benjamin Otte <otte redhat com>
Date: Thu Dec 24 20:33:36 2015 +0100
gadget: Add queue_resize/allocate/draw() functions
gtk/gtkcssgadget.c | 42 +++++++++++++++++++++++++++++++-----------
gtk/gtkcssgadgetprivate.h | 4 ++++
2 files changed, 35 insertions(+), 11 deletions(-)
---
diff --git a/gtk/gtkcssgadget.c b/gtk/gtkcssgadget.c
index dfda403..9857c46 100644
--- a/gtk/gtkcssgadget.c
+++ b/gtk/gtkcssgadget.c
@@ -122,17 +122,12 @@ static void
gtk_css_gadget_real_style_changed (GtkCssGadget *gadget,
GtkCssStyleChange *change)
{
- GtkCssGadgetPrivate *priv = gtk_css_gadget_get_instance_private (gadget);
-
- if (priv->owner)
- {
- if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_SIZE))
- gtk_widget_queue_resize (priv->owner);
- else if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_CLIP))
- gtk_widget_queue_allocate (priv->owner);
- else if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_REDRAW))
- gtk_widget_queue_draw (priv->owner);
- }
+ if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_SIZE))
+ gtk_css_gadget_queue_resize (gadget);
+ else if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_CLIP))
+ gtk_css_gadget_queue_allocate (gadget);
+ else if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_REDRAW))
+ gtk_css_gadget_queue_draw (gadget);
}
static void
@@ -775,6 +770,31 @@ gtk_css_node_style_changed_for_widget (GtkCssNode *node,
}
void
+gtk_css_gadget_queue_resize (GtkCssGadget *gadget)
+{
+ g_return_if_fail (GTK_IS_CSS_GADGET (gadget));
+
+ gtk_widget_queue_resize (gtk_css_gadget_get_owner (gadget));
+}
+
+void
+gtk_css_gadget_queue_allocate (GtkCssGadget *gadget)
+{
+ g_return_if_fail (GTK_IS_CSS_GADGET (gadget));
+
+ gtk_widget_queue_allocate (gtk_css_gadget_get_owner (gadget));
+}
+
+void
+gtk_css_gadget_queue_draw (GtkCssGadget *gadget)
+{
+ g_return_if_fail (GTK_IS_CSS_GADGET (gadget));
+
+ /* XXX: Only invalidate clip here */
+ gtk_widget_queue_draw (gtk_css_gadget_get_owner (gadget));
+}
+
+void
gtk_css_gadget_get_border_allocation (GtkCssGadget *gadget,
GtkAllocation *allocation,
int *baseline)
diff --git a/gtk/gtkcssgadgetprivate.h b/gtk/gtkcssgadgetprivate.h
index 40efe8d..ec898bd 100644
--- a/gtk/gtkcssgadgetprivate.h
+++ b/gtk/gtkcssgadgetprivate.h
@@ -107,6 +107,10 @@ void gtk_css_gadget_allocate (GtkCssGadget
void gtk_css_gadget_draw (GtkCssGadget *gadget,
cairo_t *cr);
+void gtk_css_gadget_queue_resize (GtkCssGadget *gadget);
+void gtk_css_gadget_queue_allocate (GtkCssGadget *gadget);
+void gtk_css_gadget_queue_draw (GtkCssGadget *gadget);
+
void gtk_css_gadget_get_border_allocation (GtkCssGadget *gadget,
GtkAllocation *allocation,
int *baseline);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]