X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fframerender.c;h=fe789d9618585af727dbd736e6e0a0e731d592d9;hb=e5aee030e5d6a0234820f849a4248ea797c2115f;hp=4f5d08581a9fd8a9ef2f2dc0b1b9a7a110504de9;hpb=37aaf4c1e44c205ccbe9ddb7f7633afdcf57fa0f;p=chaz%2Fopenbox diff --git a/openbox/framerender.c b/openbox/framerender.c index 4f5d0858..fe789d96 100644 --- a/openbox/framerender.c +++ b/openbox/framerender.c @@ -34,14 +34,31 @@ 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; 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) : @@ -62,8 +79,6 @@ void framerender_frame(ObFrame *self) XClearWindow(ob_display, self->titletopright); XSetWindowBackground(ob_display, self->titleright, px); 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); @@ -87,6 +102,15 @@ void framerender_frame(ObFrame *self) XClearWindow(ob_display, self->rgriptop); XSetWindowBackground(ob_display, self->rgripbottom, px); XClearWindow(ob_display, self->rgripbottom); + + /* 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); } if (self->decorations & OB_FRAME_DECOR_TITLEBAR) { @@ -335,6 +359,7 @@ static void framerender_icon(ObFrame *self, RrAppearance *a) a->texture[0].type = RR_TEXTURE_RGBA; a->texture[0].data.rgba.width = icon->width; a->texture[0].data.rgba.height = icon->height; + a->texture[0].data.rgba.alpha = 0xff; a->texture[0].data.rgba.data = icon->data; } else a->texture[0].type = RR_TEXTURE_NONE;