static void gtk_css_path_node_invalidate (GtkCssNode *node) { GtkCssPathNode *path_node = GTK_CSS_PATH_NODE (node); if (path_node->context) { GtkBitmask *changes; changes = _gtk_bitmask_new (); changes = _gtk_bitmask_invert_range (changes, 0, _gtk_css_style_property_get_n_properties ()); gtk_style_context_validate (path_node->context, changes); _gtk_bitmask_free (changes); } }
GtkCssLookup * _gtk_css_lookup_new (const GtkBitmask *relevant) { GtkCssLookup *lookup; lookup = g_malloc0 (sizeof (GtkCssLookup)); if (relevant) { lookup->missing = _gtk_bitmask_copy (relevant); } else { lookup->missing = _gtk_bitmask_new (); lookup->missing = _gtk_bitmask_invert_range (lookup->missing, 0, GTK_CSS_PROPERTY_N_PROPERTIES); } return lookup; }
GtkCssLookup * _gtk_css_lookup_new (const GtkBitmask *relevant) { GtkCssLookup *lookup; guint n = _gtk_css_style_property_get_n_properties (); lookup = g_malloc0 (sizeof (GtkCssLookup) + sizeof (GtkCssLookupValue) * n); if (relevant) { lookup->missing = _gtk_bitmask_copy (relevant); } else { lookup->missing = _gtk_bitmask_new (); lookup->missing = _gtk_bitmask_invert_range (lookup->missing, 0, n); } return lookup; }
GtkBitmask * _gtk_css_computed_values_get_difference (GtkCssComputedValues *values, GtkCssComputedValues *other) { GtkBitmask *result; guint i, len; len = MIN (values->values->len, other->values->len); result = _gtk_bitmask_new (); if (values->values->len != other->values->len) result = _gtk_bitmask_invert_range (result, len, MAX (values->values->len, other->values->len)); for (i = 0; i < len; i++) { if (!_gtk_css_value_equal (g_ptr_array_index (values->values, i), g_ptr_array_index (other->values, i))) result = _gtk_bitmask_set (result, i, TRUE); } return result; }