]> Dogcows Code - chaz/openbox/blobdiff - openbox/framerender.c
have the clientpadding color show during resize, and no flashing on unmap. we win !
[chaz/openbox] / openbox / framerender.c
index e4f945a0eb60a17ba5cf12c9220e0a1605575799..b86f469227a6fe332d6621c2bc7cfd1ec3a04aec 100644 (file)
@@ -40,20 +40,26 @@ void framerender_frame(ObFrame *self)
         px = (self->focused ?
               RrColorPixel(ob_rr_theme->cb_focused_color) :
               RrColorPixel(ob_rr_theme->cb_unfocused_color));
-        XSetWindowBackground(ob_display, self->inner, px);
-        XClearWindow(ob_display, self->inner);
+
+        XSetWindowBackground(ob_display, self->backback, px);
+        XClearWindow(ob_display, self->backback);
+        XSetWindowBackground(ob_display, self->innerleft, px);
+        XClearWindow(ob_display, self->innerleft);
+        XSetWindowBackground(ob_display, self->innertop, px);
+        XClearWindow(ob_display, self->innertop);
+        XSetWindowBackground(ob_display, self->innerright, px);
+        XClearWindow(ob_display, self->innerright);
+        XSetWindowBackground(ob_display, self->innerbottom, px);
+        XClearWindow(ob_display, self->innerbottom);
 
         px = (self->focused ?
               RrColorPixel(ob_rr_theme->frame_focused_border_color) :
               RrColorPixel(ob_rr_theme->frame_unfocused_border_color));
-        XSetWindowBorder(ob_display, self->handle, px);
-        XSetWindowBorder(ob_display, self->rgrip, px);
-        XSetWindowBorder(ob_display, self->lgrip, px);
 
-        XSetWindowBackground(ob_display, self->leftresize, px);
-        XClearWindow(ob_display, self->leftresize);
-        XSetWindowBackground(ob_display, self->rightresize, px);
-        XClearWindow(ob_display, self->rightresize);
+        XSetWindowBackground(ob_display, self->left, px);
+        XClearWindow(ob_display, self->left);
+        XSetWindowBackground(ob_display, self->right, px);
+        XClearWindow(ob_display, self->right);
 
         XSetWindowBackground(ob_display, self->titleleft, px);
         XClearWindow(ob_display, self->titleleft);
@@ -67,10 +73,33 @@ void framerender_frame(ObFrame *self)
         XClearWindow(ob_display, self->titleright);
         XSetWindowBackground(ob_display, self->titlebottom, px);
         XClearWindow(ob_display, self->titlebottom);
+
+        XSetWindowBackground(ob_display, self->handleleft, px);
+        XClearWindow(ob_display, self->handleleft);
+        XSetWindowBackground(ob_display, self->handletop, px);
+        XClearWindow(ob_display, self->handletop);
+        XSetWindowBackground(ob_display, self->handleright, px);
+        XClearWindow(ob_display, self->handleright);
+        XSetWindowBackground(ob_display, self->handlebottom, px);
+        XClearWindow(ob_display, self->handlebottom);
+
+        XSetWindowBackground(ob_display, self->lgripleft, px);
+        XClearWindow(ob_display, self->lgripleft);
+        XSetWindowBackground(ob_display, self->lgriptop, px);
+        XClearWindow(ob_display, self->lgriptop);
+        XSetWindowBackground(ob_display, self->lgripbottom, px);
+        XClearWindow(ob_display, self->lgripbottom);
+
+        XSetWindowBackground(ob_display, self->rgripright, px);
+        XClearWindow(ob_display, self->rgripright);
+        XSetWindowBackground(ob_display, self->rgriptop, px);
+        XClearWindow(ob_display, self->rgriptop);
+        XSetWindowBackground(ob_display, self->rgripbottom, px);
+        XClearWindow(ob_display, self->rgripbottom);
     }
 
     if (self->decorations & OB_FRAME_DECOR_TITLEBAR) {
-        RrAppearance *t, *l, *m, *n, *i, *d, *s, *c;
+        RrAppearance *t, *l, *m, *n, *i, *d, *s, *c, *clear;
         if (self->focused) {
 
             t = self->a_focused_title;
@@ -188,39 +217,38 @@ void framerender_frame(ObFrame *self)
                    ob_rr_theme->a_hover_unfocused_close : 
                    ob_rr_theme->a_unfocused_unpressed_close)));
         }
+        clear = ob_rr_theme->a_clear;
 
         RrPaint(t, self->title, self->width, ob_rr_theme->title_height);
 
-        ob_rr_theme->a_clear->surface.parent = t;
-        ob_rr_theme->a_clear->surface.parenty = 0;
+        clear->surface.parent = t;
+        clear->surface.parenty = 0;
+
+        clear->surface.parentx = ob_rr_theme->grip_width;
 
-        ob_rr_theme->a_clear->surface.parentx = ob_rr_theme->grip_width +
-            self->bwidth;
-        RrPaint(ob_rr_theme->a_clear, self->topresize,
-                self->width - (ob_rr_theme->grip_width + self->bwidth) * 2,
+        RrPaint(clear, self->topresize,
+                self->width - ob_rr_theme->grip_width * 2,
                 ob_rr_theme->paddingy + 1);
 
-        ob_rr_theme->a_clear->surface.parentx = 0;
+        clear->surface.parentx = 0;
 
         if (ob_rr_theme->grip_width > 0)
-            RrPaint(ob_rr_theme->a_clear, self->tltresize,
+            RrPaint(clear, self->tltresize,
                     ob_rr_theme->grip_width, ob_rr_theme->paddingy + 1);
         if (ob_rr_theme->title_height > 0)
-            RrPaint(ob_rr_theme->a_clear, self->tllresize,
+            RrPaint(clear, self->tllresize,
                     ob_rr_theme->paddingx + 1, ob_rr_theme->title_height);
 
-        ob_rr_theme->a_clear->surface.parentx =
-            self->width - ob_rr_theme->grip_width;
+        clear->surface.parentx = self->width - ob_rr_theme->grip_width;
 
         if (ob_rr_theme->grip_width > 0)
-            RrPaint(ob_rr_theme->a_clear, self->trtresize,
+            RrPaint(clear, self->trtresize,
                     ob_rr_theme->grip_width, ob_rr_theme->paddingy + 1);
 
-        ob_rr_theme->a_clear->surface.parentx =
-            self->width - (ob_rr_theme->paddingx + 1);
+        clear->surface.parentx = self->width - (ob_rr_theme->paddingx + 1);
 
         if (ob_rr_theme->title_height > 0)
-            RrPaint(ob_rr_theme->a_clear, self->trrresize,
+            RrPaint(clear, self->trrresize,
                     ob_rr_theme->paddingx + 1, ob_rr_theme->title_height);
 
         /* set parents for any parent relative guys */
This page took 0.023312 seconds and 4 git commands to generate.