X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fframerender.c;h=8cb5910f4f32b083f86ed762da293190e7e53ed0;hb=bfb0c916718cd6f68ef100841a625b06602f616b;hp=f122eef87d038e11b0493d0bcb45e420639cf41a;hpb=439d2c62fa83e4a233ea44f3eb5d706c6edfc3df;p=chaz%2Fopenbox diff --git a/openbox/framerender.c b/openbox/framerender.c index f122eef8..8cb5910f 100644 --- a/openbox/framerender.c +++ b/openbox/framerender.c @@ -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); @@ -116,12 +126,12 @@ void framerender_frame(ObFrame *self) (self->max_press ? ob_rr_theme->a_toggled_focused_pressed_max : (self->max_hover ? - ob_rr_theme->a_toggled_hover_focused_max : + ob_rr_theme->a_toggled_hover_focused_max : ob_rr_theme->a_toggled_focused_unpressed_max)) : (self->max_press ? ob_rr_theme->a_focused_pressed_max : (self->max_hover ? - ob_rr_theme->a_hover_focused_max : + ob_rr_theme->a_hover_focused_max : ob_rr_theme->a_focused_unpressed_max)))); n = self->a_icon; i = (!(self->decorations & OB_FRAME_DECOR_ICONIFY) ? @@ -129,7 +139,7 @@ void framerender_frame(ObFrame *self) (self->iconify_press ? ob_rr_theme->a_focused_pressed_iconify : (self->iconify_hover ? - ob_rr_theme->a_hover_focused_iconify : + ob_rr_theme->a_hover_focused_iconify : ob_rr_theme->a_focused_unpressed_iconify))); d = (!(self->decorations & OB_FRAME_DECOR_ALLDESKTOPS) ? ob_rr_theme->a_disabled_focused_desk : @@ -137,12 +147,12 @@ void framerender_frame(ObFrame *self) (self->desk_press ? ob_rr_theme->a_toggled_focused_pressed_desk : (self->desk_hover ? - ob_rr_theme->a_toggled_hover_focused_desk : + ob_rr_theme->a_toggled_hover_focused_desk : ob_rr_theme->a_toggled_focused_unpressed_desk)) : (self->desk_press ? ob_rr_theme->a_focused_pressed_desk : (self->desk_hover ? - ob_rr_theme->a_hover_focused_desk : + ob_rr_theme->a_hover_focused_desk : ob_rr_theme->a_focused_unpressed_desk)))); s = (!(self->decorations & OB_FRAME_DECOR_SHADE) ? ob_rr_theme->a_disabled_focused_shade : @@ -150,19 +160,19 @@ void framerender_frame(ObFrame *self) (self->shade_press ? ob_rr_theme->a_toggled_focused_pressed_shade : (self->shade_hover ? - ob_rr_theme->a_toggled_hover_focused_shade : + ob_rr_theme->a_toggled_hover_focused_shade : ob_rr_theme->a_toggled_focused_unpressed_shade)) : (self->shade_press ? ob_rr_theme->a_focused_pressed_shade : (self->shade_hover ? - ob_rr_theme->a_hover_focused_shade : + ob_rr_theme->a_hover_focused_shade : ob_rr_theme->a_focused_unpressed_shade)))); c = (!(self->decorations & OB_FRAME_DECOR_CLOSE) ? ob_rr_theme->a_disabled_focused_close : (self->close_press ? ob_rr_theme->a_focused_pressed_close : (self->close_hover ? - ob_rr_theme->a_hover_focused_close : + ob_rr_theme->a_hover_focused_close : ob_rr_theme->a_focused_unpressed_close))); } else { t = self->a_unfocused_title; @@ -173,12 +183,12 @@ void framerender_frame(ObFrame *self) (self->max_press ? ob_rr_theme->a_toggled_unfocused_pressed_max : (self->max_hover ? - ob_rr_theme->a_toggled_hover_unfocused_max : + ob_rr_theme->a_toggled_hover_unfocused_max : ob_rr_theme->a_toggled_unfocused_unpressed_max)) : (self->max_press ? ob_rr_theme->a_unfocused_pressed_max : (self->max_hover ? - ob_rr_theme->a_hover_unfocused_max : + ob_rr_theme->a_hover_unfocused_max : ob_rr_theme->a_unfocused_unpressed_max)))); n = self->a_icon; i = (!(self->decorations & OB_FRAME_DECOR_ICONIFY) ? @@ -186,7 +196,7 @@ void framerender_frame(ObFrame *self) (self->iconify_press ? ob_rr_theme->a_unfocused_pressed_iconify : (self->iconify_hover ? - ob_rr_theme->a_hover_unfocused_iconify : + ob_rr_theme->a_hover_unfocused_iconify : ob_rr_theme->a_unfocused_unpressed_iconify))); d = (!(self->decorations & OB_FRAME_DECOR_ALLDESKTOPS) ? ob_rr_theme->a_disabled_unfocused_desk : @@ -194,12 +204,12 @@ void framerender_frame(ObFrame *self) (self->desk_press ? ob_rr_theme->a_toggled_unfocused_pressed_desk : (self->desk_hover ? - ob_rr_theme->a_toggled_hover_unfocused_desk : + ob_rr_theme->a_toggled_hover_unfocused_desk : ob_rr_theme->a_toggled_unfocused_unpressed_desk)) : (self->desk_press ? ob_rr_theme->a_unfocused_pressed_desk : (self->desk_hover ? - ob_rr_theme->a_hover_unfocused_desk : + ob_rr_theme->a_hover_unfocused_desk : ob_rr_theme->a_unfocused_unpressed_desk)))); s = (!(self->decorations & OB_FRAME_DECOR_SHADE) ? ob_rr_theme->a_disabled_unfocused_shade : @@ -207,19 +217,19 @@ void framerender_frame(ObFrame *self) (self->shade_press ? ob_rr_theme->a_toggled_unfocused_pressed_shade : (self->shade_hover ? - ob_rr_theme->a_toggled_hover_unfocused_shade : + ob_rr_theme->a_toggled_hover_unfocused_shade : ob_rr_theme->a_toggled_unfocused_unpressed_shade)) : (self->shade_press ? ob_rr_theme->a_unfocused_pressed_shade : (self->shade_hover ? - ob_rr_theme->a_hover_unfocused_shade : + ob_rr_theme->a_hover_unfocused_shade : ob_rr_theme->a_unfocused_unpressed_shade)))); c = (!(self->decorations & OB_FRAME_DECOR_CLOSE) ? ob_rr_theme->a_disabled_unfocused_close : (self->close_press ? ob_rr_theme->a_unfocused_pressed_close : (self->close_hover ? - ob_rr_theme->a_hover_unfocused_close : + ob_rr_theme->a_hover_unfocused_close : ob_rr_theme->a_unfocused_unpressed_close))); } clear = ob_rr_theme->a_clear;