modifier_style_changed (GtkModifierStyle *style,
GtkWidget *widget)
{
- GtkStyleContext *context;
-
- context = gtk_widget_get_style_context (widget);
- gtk_style_context_invalidate (context);
+ _gtk_widget_invalidate_style_context (widget, GTK_CSS_CHANGE_ANY);
}
static GtkModifierStyle *
gtk_widget_path_append_for_widget (widget->priv->path, widget);
}
- if (widget->priv->context)
- gtk_style_context_invalidate (widget->priv->context);
+ _gtk_widget_invalidate_style_context (widget, GTK_CSS_CHANGE_ANY);
}
return widget->priv->path;
return widget->priv->context;
}
+void
+_gtk_widget_invalidate_style_context (GtkWidget *widget,
+ GtkCssChange change)
+{
+ GtkWidgetPrivate *priv;
+
+ priv = widget->priv;
+
+ if (priv->context == NULL)
+ return;
+
+ _gtk_style_context_queue_invalidate (priv->context, change);
+}
+
/**
* gtk_widget_get_modifier_mask:
* @widget: a #GtkWidget
#ifndef __GTK_WIDGET_PRIVATE_H__
#define __GTK_WIDGET_PRIVATE_H__
+#include "gtkcsstypesprivate.h"
+#include "gtkwidget.h"
+
G_BEGIN_DECLS
/* Cache as many ranges of height-for-width
gboolean _gtk_widget_captured_event (GtkWidget *widget,
GdkEvent *event);
-void _gtk_widget_style_context_invalidated (GtkWidget *widget);
+void _gtk_widget_invalidate_style_context (GtkWidget *widget,
+ GtkCssChange change);
+void _gtk_widget_style_context_invalidated (GtkWidget *widget);
G_END_DECLS