stylecontext: If we force invalidate, invalidate all properties

We only FORCE_INVALIDATE when something weird changes that the CSS
machinery can't detect. But now that our style_updated functions skip
recomputations when some properties don't change we want to make sure
these recomputations are still run. So we just claim all properties
changed.

http://bugzilla.gnome.org/show_bug.cgi?id=695482
This commit is contained in:
Benjamin Otte 2013-03-12 12:44:03 +01:00
parent e09957a47d
commit fb170239c7

View File

@ -3281,8 +3281,19 @@ _gtk_style_context_validate (GtkStyleContext *context,
_gtk_bitmask_free (animation_changes);
}
if (!_gtk_bitmask_is_empty (changes) || (change & GTK_CSS_CHANGE_FORCE_INVALIDATE))
gtk_style_context_do_invalidate (context, changes);
if (change & GTK_CSS_CHANGE_FORCE_INVALIDATE)
{
GtkBitmask *full = _gtk_bitmask_new ();
full = _gtk_bitmask_invert_range (full,
0,
_gtk_css_style_property_get_n_properties ());
gtk_style_context_do_invalidate (context, full);
_gtk_bitmask_free (full);
}
else if (!_gtk_bitmask_is_empty (changes))
{
gtk_style_context_do_invalidate (context, changes);
}
change = _gtk_css_change_for_child (change);
for (list = priv->children; list; list = list->next)