[gtk+/wip/actor: 32/42] xxx: cssbox



commit 1e5b5a9f3fa35cbbc3f81f85b6499e9a80f8415b
Author: Benjamin Otte <otte redhat com>
Date:   Sun Dec 16 21:38:04 2012 +0100

    xxx: cssbox

 gtk/actors/gtkcssbox.c |   23 +++++++++++++++++++++--
 1 files changed, 21 insertions(+), 2 deletions(-)
---
diff --git a/gtk/actors/gtkcssbox.c b/gtk/actors/gtkcssbox.c
index 91a129a..c032032 100644
--- a/gtk/actors/gtkcssbox.c
+++ b/gtk/actors/gtkcssbox.c
@@ -140,6 +140,17 @@ gtk_css_box_update_state_on_children (GtkCssBox     *box,
 }
 
 static void
+gtk_css_box_finalize (GObject *object)
+{
+  GtkCssBox *self = GTK_CSS_BOX (object);
+  GtkCssBoxPrivate *priv = self->priv;
+
+  g_free (priv->id);
+
+  G_OBJECT_CLASS (_gtk_css_box_parent_class)->finalize (object);
+}
+
+static void
 gtk_css_box_set_property (GObject      *object,
                           guint         prop_id,
                           const GValue *value,
@@ -459,6 +470,7 @@ _gtk_css_box_class_init (GtkCssBoxClass *klass)
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
   GtkActorClass *actor_class = GTK_ACTOR_CLASS (klass);
 
+  object_class->finalize = gtk_css_box_finalize;
   object_class->set_property = gtk_css_box_set_property;
   object_class->get_property = gtk_css_box_get_property;
 
@@ -616,10 +628,17 @@ void
 _gtk_css_box_set_id (GtkCssBox  *self,
                      const char *id)
 {
+  GtkCssBoxPrivate *priv;
+
   g_return_if_fail (GTK_IS_CSS_BOX (self));
 
-  g_free (self->priv->id);
-  self->priv->id = g_strdup (id);
+  priv = self->priv;
+
+  if (g_strcmp0 (priv->id, id) == 0)
+    return;
+
+  g_free (priv->id);
+  priv->id = g_strdup (id);
 
   gtk_css_box_queue_restyle (self, GTK_CSS_CHANGE_NAME);
   g_object_notify_by_pspec (G_OBJECT (self), obj_props[PROP_ID]);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]