Handle transparent colors better in GtkStyle emulation

We can't expose colors with alpha in the GtkStyle colors, since
GdkColor has no alpha. Currently we throw away alpha completely,
which fails very badly for completely transparent backgrounds,
which now is the default for most widgets, as it typically
end up with black-on-black.

We handle this by falling back on the default/previous colors for
transparent colors. This is is simple and avoids complete failure.

https://bugzilla.gnome.org/show_bug.cgi?id=671437

(cherry picked from commit 1042372670)
This commit is contained in:
Alexander Larsson
2012-06-28 21:30:24 +02:00
committed by Matthew Barnes
parent 2c01d52a7e
commit 72feb95edb

View File

@@ -673,7 +673,7 @@ set_color (GtkStyle *style,
break;
}
if (color)
if (color && color->alpha > 0.01)
{
dest->pixel = 0;
dest->red = CLAMP ((guint) (color->red * 65535), 0, 65535);