From 0e23ec394e884e2af8e53bd7580c873bd9b2c137 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Mon, 24 Jan 2011 16:23:16 -0500 Subject: [PATCH] StThemeNodeDrawing: Ignore border fill in interior We need to be careful to ignore any preexisting color information in the interior of the node when filling it with the background color, since the border color may have leaked into the interior and the background color may be translucent. https://bugzilla.gnome.org/show_bug.cgi?id=640465 --- src/st/st-theme-node-drawing.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/st/st-theme-node-drawing.c b/src/st/st-theme-node-drawing.c index 409fbd469..088ab483a 100644 --- a/src/st/st-theme-node-drawing.c +++ b/src/st/st-theme-node-drawing.c @@ -939,12 +939,15 @@ st_theme_node_render_background_with_border (StThemeNode *node) if (draw_solid_background) { + cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE); + cairo_set_source_rgba (cr, node->background_color.red / 255., node->background_color.green / 255., node->background_color.blue / 255., node->background_color.alpha / 255.); cairo_fill_preserve (cr); + cairo_set_operator (cr, CAIRO_OPERATOR_OVER); } if (draw_background_image_shadow)