css: Remove _gtk_css_style_property_changes_affect_size()

... and _gtk_css_style_property_changes_affect_font().

Replace it with _gtk_css_style_property_get_mask_affecting().
This commit is contained in:
Benjamin Otte 2015-01-27 05:03:52 +01:00
parent 488ea44a59
commit aa1b7fab9c
5 changed files with 18 additions and 30 deletions

View File

@ -47,9 +47,6 @@ enum {
G_DEFINE_TYPE (GtkCssStyleProperty, _gtk_css_style_property, GTK_TYPE_STYLE_PROPERTY) G_DEFINE_TYPE (GtkCssStyleProperty, _gtk_css_style_property, GTK_TYPE_STYLE_PROPERTY)
static GtkBitmask *_properties_affecting_size = NULL;
static GtkBitmask *_properties_affecting_font = NULL;
static GtkCssStylePropertyClass *gtk_css_style_property_class = NULL; static GtkCssStylePropertyClass *gtk_css_style_property_class = NULL;
static void static void
@ -61,12 +58,6 @@ gtk_css_style_property_constructed (GObject *object)
property->id = klass->style_properties->len; property->id = klass->style_properties->len;
g_ptr_array_add (klass->style_properties, property); g_ptr_array_add (klass->style_properties, property);
if (property->affects & (GTK_CSS_AFFECTS_SIZE | GTK_CSS_AFFECTS_CLIP))
_properties_affecting_size = _gtk_bitmask_set (_properties_affecting_size, property->id, TRUE);
if (property->affects & GTK_CSS_AFFECTS_FONT)
_properties_affecting_font = _gtk_bitmask_set (_properties_affecting_font, property->id, TRUE);
G_OBJECT_CLASS (_gtk_css_style_property_parent_class)->constructed (object); G_OBJECT_CLASS (_gtk_css_style_property_parent_class)->constructed (object);
} }
@ -253,9 +244,6 @@ _gtk_css_style_property_class_init (GtkCssStylePropertyClass *klass)
klass->style_properties = g_ptr_array_new (); klass->style_properties = g_ptr_array_new ();
_properties_affecting_size = _gtk_bitmask_new ();
_properties_affecting_font = _gtk_bitmask_new ();
gtk_css_style_property_class = klass; gtk_css_style_property_class = klass;
} }
@ -435,14 +423,3 @@ _gtk_css_style_property_get_mask_affecting (GtkCssAffects affects)
return result; return result;
} }
gboolean
_gtk_css_style_property_changes_affect_size (const GtkBitmask *changes)
{
return _gtk_bitmask_intersects (changes, _properties_affecting_size);
}
gboolean
_gtk_css_style_property_changes_affect_font (const GtkBitmask *changes)
{
return _gtk_bitmask_intersects (changes, _properties_affecting_font);
}

View File

@ -85,10 +85,6 @@ void _gtk_css_style_property_print_value (GtkCssStyleProp
GtkBitmask * _gtk_css_style_property_get_mask_affecting GtkBitmask * _gtk_css_style_property_get_mask_affecting
(GtkCssAffects affects); (GtkCssAffects affects);
gboolean _gtk_css_style_property_changes_affect_size
(const GtkBitmask *changes);
gboolean _gtk_css_style_property_changes_affect_font
(const GtkBitmask *changes);
G_END_DECLS G_END_DECLS

View File

@ -4454,12 +4454,16 @@ gtk_text_view_set_background (GtkTextView *text_view)
static void static void
gtk_text_view_style_updated (GtkWidget *widget) gtk_text_view_style_updated (GtkWidget *widget)
{ {
static GtkBitmask *affects_font = NULL;
GtkTextView *text_view; GtkTextView *text_view;
GtkTextViewPrivate *priv; GtkTextViewPrivate *priv;
PangoContext *ltr_context, *rtl_context; PangoContext *ltr_context, *rtl_context;
GtkStyleContext *style_context; GtkStyleContext *style_context;
const GtkBitmask *changes; const GtkBitmask *changes;
if (G_UNLIKELY (affects_font) == NULL)
affects_font = _gtk_css_style_property_get_mask_affecting (GTK_CSS_AFFECTS_FONT);
text_view = GTK_TEXT_VIEW (widget); text_view = GTK_TEXT_VIEW (widget);
priv = text_view->priv; priv = text_view->priv;
@ -4473,7 +4477,8 @@ gtk_text_view_style_updated (GtkWidget *widget)
style_context = gtk_widget_get_style_context (widget); style_context = gtk_widget_get_style_context (widget);
changes = _gtk_style_context_get_changes (style_context); changes = _gtk_style_context_get_changes (style_context);
if ((changes == NULL || _gtk_css_style_property_changes_affect_font (changes)) &&
if ((changes == NULL || _gtk_bitmask_intersects (changes, affects_font)) &&
priv->layout && priv->layout->default_style) priv->layout && priv->layout->default_style)
{ {
gtk_text_view_set_attributes_from_style (text_view, gtk_text_view_set_attributes_from_style (text_view,

View File

@ -8700,12 +8700,16 @@ gtk_tree_view_grab_focus (GtkWidget *widget)
static void static void
gtk_tree_view_style_updated (GtkWidget *widget) gtk_tree_view_style_updated (GtkWidget *widget)
{ {
static GtkBitmask *affects_size = NULL;
GtkTreeView *tree_view = GTK_TREE_VIEW (widget); GtkTreeView *tree_view = GTK_TREE_VIEW (widget);
GList *list; GList *list;
GtkTreeViewColumn *column; GtkTreeViewColumn *column;
GtkStyleContext *style_context; GtkStyleContext *style_context;
const GtkBitmask *changes; const GtkBitmask *changes;
if (G_UNLIKELY (affects_size) == NULL)
affects_size = _gtk_css_style_property_get_mask_affecting (GTK_CSS_AFFECTS_SIZE | GTK_CSS_AFFECTS_CLIP);
GTK_WIDGET_CLASS (gtk_tree_view_parent_class)->style_updated (widget); GTK_WIDGET_CLASS (gtk_tree_view_parent_class)->style_updated (widget);
if (gtk_widget_get_realized (widget)) if (gtk_widget_get_realized (widget))
@ -8718,7 +8722,8 @@ gtk_tree_view_style_updated (GtkWidget *widget)
style_context = gtk_widget_get_style_context (widget); style_context = gtk_widget_get_style_context (widget);
changes = _gtk_style_context_get_changes (style_context); changes = _gtk_style_context_get_changes (style_context);
if (changes == NULL || _gtk_css_style_property_changes_affect_size (changes))
if (changes == NULL || _gtk_bitmask_intersects (changes, affects_size))
{ {
for (list = tree_view->priv->columns; list; list = list->next) for (list = tree_view->priv->columns; list; list = list->next)
{ {

View File

@ -8229,7 +8229,12 @@ gtk_widget_real_style_updated (GtkWidget *widget)
if (widget->priv->anchored) if (widget->priv->anchored)
{ {
if (changes == NULL || _gtk_css_style_property_changes_affect_size (changes)) static GtkBitmask *affects_size = NULL;
if (G_UNLIKELY (affects_size) == NULL)
affects_size = _gtk_css_style_property_get_mask_affecting (GTK_CSS_AFFECTS_SIZE | GTK_CSS_AFFECTS_CLIP);
if (changes == NULL || _gtk_bitmask_intersects (changes, affects_size))
gtk_widget_queue_resize (widget); gtk_widget_queue_resize (widget);
else else
gtk_widget_queue_draw (widget); gtk_widget_queue_draw (widget);