]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkthemingengine.c
themingengine: Reduce border to 0 on hidden sides
[~andy/gtk] / gtk / gtkthemingengine.c
index ae48b6d682800c352491a7adde477ba16aedfe60..76ebb9c6deec6310453b842b2c9e140012e1396d 100644 (file)
@@ -1633,6 +1633,20 @@ gtk_theming_engine_render_background (GtkThemingEngine *engine,
                               junction);
 }
 
+static void
+gtk_theming_engine_hide_border_sides (GtkBorder *border,
+                                      guint      hidden_side)
+{
+  if (hidden_side & SIDE_TOP)
+    border->top = 0;
+  if (hidden_side & SIDE_RIGHT)
+    border->right = 0;
+  if (hidden_side & SIDE_BOTTOM)
+    border->bottom = 0;
+  if (hidden_side & SIDE_LEFT)
+    border->left = 0;
+}
+
 static void
 render_frame_internal (GtkThemingEngine *engine,
                        cairo_t          *cr,
@@ -1657,6 +1671,7 @@ render_frame_internal (GtkThemingEngine *engine,
 
   gtk_theming_engine_get_border_color (engine, state, &border_color);
   gtk_theming_engine_get_border (engine, state, &border);
+  gtk_theming_engine_hide_border_sides (&border, hidden_side);
 
   gtk_theming_engine_get (engine, state,
                           "border-style", &border_style,