]> Dogcows Code - chaz/openbox/blobdiff - openbox/framerender.c
no un-needed rendering
[chaz/openbox] / openbox / framerender.c
index f122eef87d038e11b0493d0bcb45e420639cf41a..fe789d9618585af727dbd736e6e0a0e731d592d9 100644 (file)
@@ -34,6 +34,14 @@ static void framerender_close(ObFrame *self, RrAppearance *a);
 
 void framerender_frame(ObFrame *self)
 {
+    if (frame_iconify_animating(self))
+        return; /* delay redrawing until the animation is done */
+    if (!self->need_render)
+        return;
+    if (!self->visible)
+        return;
+    self->need_render = FALSE;
+
     {
         gulong px;
 
@@ -95,9 +103,11 @@ void framerender_frame(ObFrame *self)
         XSetWindowBackground(ob_display, self->rgripbottom, px);
         XClearWindow(ob_display, self->rgripbottom);
 
-        px = (self->focused ?
-              RrColorPixel(ob_rr_theme->title_separator_focused_color) :
-              RrColorPixel(ob_rr_theme->title_separator_unfocused_color));
+        /* don't use the separator color for shaded windows */
+        if (!self->client->shaded)
+            px = (self->focused ?
+                  RrColorPixel(ob_rr_theme->title_separator_focused_color) :
+                  RrColorPixel(ob_rr_theme->title_separator_unfocused_color));
 
         XSetWindowBackground(ob_display, self->titlebottom, px);
         XClearWindow(ob_display, self->titlebottom);
This page took 0.023986 seconds and 4 git commands to generate.