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;
XClearWindow(ob_display, self->innerright);
XSetWindowBackground(ob_display, self->innerbottom, px);
XClearWindow(ob_display, self->innerbottom);
+ XSetWindowBackground(ob_display, self->innerbll, px);
+ XClearWindow(ob_display, self->innerbll);
+ XSetWindowBackground(ob_display, self->innerbrr, px);
+ XClearWindow(ob_display, self->innerbrr);
+ XSetWindowBackground(ob_display, self->innerblb, px);
+ XClearWindow(ob_display, self->innerblb);
+ XSetWindowBackground(ob_display, self->innerbrb, px);
+ XClearWindow(ob_display, self->innerbrb);
px = (self->focused ?
RrColorPixel(ob_rr_theme->frame_focused_border_color) :
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);
if (self->decorations & OB_FRAME_DECOR_TITLEBAR) {
RrAppearance *t, *l, *m, *n, *i, *d, *s, *c, *clear;
if (self->focused) {
-
- t = self->a_focused_title;
- l = self->a_focused_label;
-
+ t = ob_rr_theme->a_focused_title;
+ l = ob_rr_theme->a_focused_label;
m = (!(self->decorations & OB_FRAME_DECOR_MAXIMIZE) ?
ob_rr_theme->a_disabled_focused_max :
(self->client->max_vert || self->client->max_horz ?
(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;
+ n = ob_rr_theme->a_icon;
i = (!(self->decorations & OB_FRAME_DECOR_ICONIFY) ?
ob_rr_theme->a_disabled_focused_iconify :
(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 :
(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 :
(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;
- l = self->a_unfocused_label;
+ t = ob_rr_theme->a_unfocused_title;
+ l = ob_rr_theme->a_unfocused_label;
m = (!(self->decorations & OB_FRAME_DECOR_MAXIMIZE) ?
ob_rr_theme->a_disabled_unfocused_max :
(self->client->max_vert || self->client->max_horz ?
(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;
+ n = ob_rr_theme->a_icon;
i = (!(self->decorations & OB_FRAME_DECOR_ICONIFY) ?
ob_rr_theme->a_disabled_unfocused_iconify :
(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 :
(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 :
(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;
RrAppearance *h, *g;
h = (self->focused ?
- self->a_focused_handle : self->a_unfocused_handle);
+ ob_rr_theme->a_focused_handle : ob_rr_theme->a_unfocused_handle);
RrPaint(h, self->handle, self->width, ob_rr_theme->handle_height);