cellrendererpix: set the IMAGE style class when rendering an icon
This way, themes can change symbolic icon colors for views, by using a
.view.image {
}
CSS selector.
https://bugzilla.gnome.org/show_bug.cgi?id=680008
This commit is contained in:
@ -415,12 +415,19 @@ gtk_cell_renderer_pixbuf_get_size (GtkCellRenderer *cell,
|
|||||||
gint calc_width;
|
gint calc_width;
|
||||||
gint calc_height;
|
gint calc_height;
|
||||||
gint xpad, ypad;
|
gint xpad, ypad;
|
||||||
|
GtkStyleContext *context;
|
||||||
|
|
||||||
|
context = gtk_widget_get_style_context (widget);
|
||||||
|
gtk_style_context_save (context);
|
||||||
|
gtk_style_context_add_class (context, GTK_STYLE_CLASS_IMAGE);
|
||||||
|
|
||||||
if (!_gtk_icon_helper_get_is_empty (priv->icon_helper))
|
if (!_gtk_icon_helper_get_is_empty (priv->icon_helper))
|
||||||
_gtk_icon_helper_get_size (priv->icon_helper,
|
_gtk_icon_helper_get_size (priv->icon_helper,
|
||||||
gtk_widget_get_style_context (widget),
|
gtk_widget_get_style_context (widget),
|
||||||
&pixbuf_width, &pixbuf_height);
|
&pixbuf_width, &pixbuf_height);
|
||||||
|
|
||||||
|
gtk_style_context_restore (context);
|
||||||
|
|
||||||
if (priv->pixbuf_expander_open)
|
if (priv->pixbuf_expander_open)
|
||||||
{
|
{
|
||||||
pixbuf_width = MAX (pixbuf_width, gdk_pixbuf_get_width (priv->pixbuf_expander_open));
|
pixbuf_width = MAX (pixbuf_width, gdk_pixbuf_get_width (priv->pixbuf_expander_open));
|
||||||
@ -516,6 +523,7 @@ gtk_cell_renderer_pixbuf_render (GtkCellRenderer *cell,
|
|||||||
state = gtk_cell_renderer_get_state (cell, widget, flags);
|
state = gtk_cell_renderer_get_state (cell, widget, flags);
|
||||||
|
|
||||||
gtk_style_context_set_state (context, state);
|
gtk_style_context_set_state (context, state);
|
||||||
|
gtk_style_context_add_class (context, GTK_STYLE_CLASS_IMAGE);
|
||||||
|
|
||||||
g_object_get (cell, "is-expander", &is_expander, NULL);
|
g_object_get (cell, "is-expander", &is_expander, NULL);
|
||||||
if (is_expander)
|
if (is_expander)
|
||||||
|
|||||||
Reference in New Issue
Block a user