From 96e5a0214890580a19c4bffbb94a6004ee869527 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Fri, 24 Sep 2010 22:08:49 +0200 Subject: [PATCH] GtkThemingEngine: Use border-image to render borders if an image is available. --- gtk/gtkthemingengine.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/gtk/gtkthemingengine.c b/gtk/gtkthemingengine.c index 5a2285aad7..a5241c3b50 100644 --- a/gtk/gtkthemingengine.c +++ b/gtk/gtkthemingengine.c @@ -26,6 +26,7 @@ #include #include +#include "gtk9slice.h" #include "gtkpango.h" typedef struct GtkThemingEnginePrivate GtkThemingEnginePrivate; @@ -961,15 +962,26 @@ gtk_theming_engine_render_frame (GtkThemingEngine *engine, GtkStateFlags flags; GdkColor lighter, darker; GdkColor *bg_color; + Gtk9Slice *slice; - cairo_save (cr); flags = gtk_theming_engine_get_state (engine); - cairo_set_line_width (cr, 1); - gtk_theming_engine_get (engine, flags, + "border-image", &slice, "background-color", &bg_color, NULL); + + if (slice) + { + gtk_9slice_render (slice, cr, x, y, width, height); + gtk_9slice_unref (slice); + gdk_color_free (bg_color); + return; + } + + cairo_save (cr); + cairo_set_line_width (cr, 1); + color_shade (bg_color, 0.7, &darker); color_shade (bg_color, 1.3, &lighter);