summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2012-10-01 10:32:59 +0200
committerBenjamin Otte <otte@redhat.com>2012-10-01 10:32:59 +0200
commit2f89505b5484d7712ddc5771c754ca74e121610b (patch)
tree81ca6acc4047480ee4213de617d2142bc1051143
parenta2bef8ca516f5e9335c1133c902185e85fa66e3d (diff)
downloadgtk+-2f89505b5484d7712ddc5771c754ca74e121610b.tar.gz
csscomputedvalues: Unset the section when setting a new value
Otherwise we end up with the wrong section if no new one is specified.
-rw-r--r--gtk/gtkcsscomputedvalues.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gtk/gtkcsscomputedvalues.c b/gtk/gtkcsscomputedvalues.c
index b60324eaa0..12424cc083 100644
--- a/gtk/gtkcsscomputedvalues.c
+++ b/gtk/gtkcsscomputedvalues.c
@@ -195,6 +195,12 @@ _gtk_css_computed_values_set_value (GtkCssComputedValues *values,
if (dependencies & (GTK_CSS_DEPENDS_ON_FONT_SIZE))
values->depends_on_font_size = _gtk_bitmask_set (values->depends_on_font_size, id, TRUE);
+ if (values->sections && values->sections->len > id && g_ptr_array_index (values->sections, id))
+ {
+ gtk_css_section_unref (g_ptr_array_index (values->sections, id));
+ g_ptr_array_index (values->sections, id) = NULL;
+ }
+
if (section)
{
if (values->sections == NULL)