]> Dogcows Code - chaz/openbox/blobdiff - render/gradient.c
keep all transient windows above their parents
[chaz/openbox] / render / gradient.c
index 97dbc7036636e596a086d6d0297887ec85a567ed..ad9154a681e5a433cfc36e7e0f360d71c6472e42 100644 (file)
@@ -27,7 +27,8 @@ void gradient_render(Surface *sf, int w, int h)
     gradient_crossdiagonal(sf, w, h);
     break;
   default:
-    g_message("unhandled gradient\n");
+    g_message("unhandled gradient");
+    return;
   }
   
   if (sf->data.planar.relief == Flat && sf->data.planar.border) {
@@ -232,12 +233,21 @@ void highlight(pixel32 *x, pixel32 *y, gboolean raised)
 
 void gradient_solid(Appearance *l, int x, int y, int w, int h) 
 {
-  int i;
+  pixel32 pix;
+  int i, a, b;
   PlanarSurface *sp = &l->surface.data.planar;
   int left = x, top = y, right = w - 1, bottom = h - 1;
 
   if (sp->primary->gc == None)
     color_allocate_gc(sp->primary);
+  pix = (sp->primary->r << default_red_shift)
+      + (sp->primary->g << default_green_shift)
+      + (sp->primary->b << default_blue_shift);
+
+  for (a = 0; a < l->area.width; a++)
+    for (b = 0; b < l->area.height; b++)
+      sp->pixel_data[a + b*l->area.width] = pix;
+
   XFillRectangle(ob_display, l->pixmap, sp->primary->gc
                  , x, y, w, h);
 
This page took 0.021071 seconds and 4 git commands to generate.