Support resetting cell renderer colors with NULL again

This functionality was lost when GdkRGBA was introduced.

Bug 632936
This commit is contained in:
Matthias Clasen 2010-10-25 11:17:24 -04:00
parent 546be63ecc
commit 503698f587
2 changed files with 52 additions and 26 deletions

View File

@ -506,9 +506,12 @@ gtk_cell_renderer_set_property (GObject *object,
case PROP_CELL_BACKGROUND_GDK:
{
GdkColor *color;
GdkRGBA rgba;
color = g_value_get_boxed (value);
if (color)
{
GdkRGBA rgba;
rgba.red = color->red / 65535.;
rgba.green = color->green / 65535.;
rgba.blue = color->blue / 65535.;
@ -516,6 +519,11 @@ gtk_cell_renderer_set_property (GObject *object,
set_cell_bg_color (cell, &rgba);
}
else
{
set_cell_bg_color (cell, NULL);
}
}
break;
case PROP_CELL_BACKGROUND_RGBA:
set_cell_bg_color (cell, g_value_get_boxed (value));

View File

@ -1206,29 +1206,47 @@ gtk_cell_renderer_text_set_property (GObject *object,
case PROP_BACKGROUND_GDK:
{
GdkColor *color;
GdkRGBA rgba;
color = g_value_get_boxed (value);
if (color)
{
GdkRGBA rgba;
rgba.red = color->red / 65535.;
rgba.green = color->green / 65535.;
rgba.blue = color->blue / 65535.;
rgba.alpha = 1;
set_bg_color (celltext, &rgba);
}
else
{
set_bg_color (celltext, NULL);
}
}
break;
case PROP_FOREGROUND_GDK:
{
GdkColor *color;
GdkRGBA rgba;
color = g_value_get_boxed (value);
if (color)
{
GdkRGBA rgba;
rgba.red = color->red / 65535.;
rgba.green = color->green / 65535.;
rgba.blue = color->blue / 65535.;
rgba.alpha = 1;
set_fg_color (celltext, &rgba);
}
else
{
set_fg_color (celltext, NULL);
}
}
break;
case PROP_BACKGROUND_RGBA: