X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=engines%2Fopenbox%2Fobrender.c;h=a609376f68ce9a0cbdb6b2d78dc47a1505f173f5;hb=5b323a936403eb7a31fa4b6d50a32e864152c5de;hp=a9ed1e393b24adfdc7d42a8e7fe9faf135817bde;hpb=51c0c7398236a5dd7064562dcb37ce3331f2dd0b;p=chaz%2Fopenbox diff --git a/engines/openbox/obrender.c b/engines/openbox/obrender.c index a9ed1e39..a609376f 100644 --- a/engines/openbox/obrender.c +++ b/engines/openbox/obrender.c @@ -7,6 +7,7 @@ static void obrender_max(ObFrame *self, Appearance *a); static void obrender_icon(ObFrame *self, Appearance *a); static void obrender_iconify(ObFrame *self, Appearance *a); static void obrender_desk(ObFrame *self, Appearance *a); +static void obrender_shade(ObFrame *self, Appearance *a); static void obrender_close(ObFrame *self, Appearance *a); void obrender_frame(ObFrame *self) @@ -20,19 +21,21 @@ void obrender_frame(ObFrame *self) } if (self->frame.client->decorations & Decor_Titlebar) { - Appearance *t, *l, *m, *n, *i, *d, *c; + Appearance *t, *l, *m, *n, *i, *d, *s, *c; t = (client_focused(self->frame.client) ? self->a_focused_title : self->a_unfocused_title); l = (client_focused(self->frame.client) ? self->a_focused_label : self->a_unfocused_label); m = (client_focused(self->frame.client) ? - ((self->max_press || - self->frame.client->max_vert || self->frame.client->max_horz) ? - ob_a_focused_pressed_max : ob_a_focused_unpressed_max) : - ((self->max_press || - self->frame.client->max_vert || self->frame.client->max_horz) ? - ob_a_unfocused_pressed_max : ob_a_unfocused_unpressed_max)); + (self->frame.client->max_vert || self->frame.client->max_horz ? + ob_a_focused_pressed_set_max : + (self->max_press ? + ob_a_focused_pressed_max : ob_a_focused_unpressed_max)) : + (self->frame.client->max_vert || self->frame.client->max_horz ? + ob_a_unfocused_pressed_set_max : + (self->max_press ? + ob_a_unfocused_pressed_max : ob_a_unfocused_unpressed_max))); n = self->a_icon; i = (client_focused(self->frame.client) ? (self->iconify_press ? @@ -41,10 +44,23 @@ void obrender_frame(ObFrame *self) ob_a_unfocused_pressed_iconify : ob_a_unfocused_unpressed_iconify)); d = (client_focused(self->frame.client) ? - (self->desk_press || self->frame.client->desktop == DESKTOP_ALL ? - ob_a_focused_pressed_desk : ob_a_focused_unpressed_desk) : - (self->desk_press || self->frame.client->desktop == DESKTOP_ALL ? - ob_a_unfocused_pressed_desk : ob_a_unfocused_unpressed_desk)); + (self->frame.client->desktop == DESKTOP_ALL ? + ob_a_focused_pressed_set_desk : + (self->desk_press ? + ob_a_focused_pressed_desk : ob_a_focused_unpressed_desk)) : + (self->frame.client->desktop == DESKTOP_ALL ? + ob_a_unfocused_pressed_set_desk : + (self->desk_press ? + ob_a_unfocused_pressed_desk : ob_a_unfocused_unpressed_desk))); + s = (client_focused(self->frame.client) ? + (self->frame.client->shaded ? + ob_a_focused_pressed_set_shade : + (self->shade_press ? + ob_a_focused_pressed_shade : ob_a_focused_unpressed_shade)) : + (self->frame.client->shaded ? + ob_a_unfocused_pressed_set_shade : + (self->shade_press ? + ob_a_unfocused_pressed_shade :ob_a_unfocused_unpressed_shade))); c = (client_focused(self->frame.client) ? (self->close_press ? ob_a_focused_pressed_close : ob_a_focused_unpressed_close) : @@ -74,6 +90,10 @@ void obrender_frame(ObFrame *self) d->surface.data.planar.parentx = self->desk_x; d->surface.data.planar.parenty = ob_s_bevel + 1; + s->surface.data.planar.parent = t; + s->surface.data.planar.parentx = self->shade_x; + s->surface.data.planar.parenty = ob_s_bevel + 1; + c->surface.data.planar.parent = t; c->surface.data.planar.parentx = self->close_x; c->surface.data.planar.parenty = ob_s_bevel + 1; @@ -83,6 +103,7 @@ void obrender_frame(ObFrame *self) obrender_icon(self, n); obrender_iconify(self, i); obrender_desk(self, d); + obrender_shade(self, s); obrender_close(self, c); } @@ -166,6 +187,14 @@ static void obrender_desk(ObFrame *self, Appearance *a) paint(self->desk, a); } +static void obrender_shade(ObFrame *self, Appearance *a) +{ + if (self->shade_x < 0) return; + + RECT_SET(a->texture[0].position, 0, 0, BUTTON_SIZE,BUTTON_SIZE); + paint(self->shade, a); +} + static void obrender_close(ObFrame *self, Appearance *a) { if (self->close_x < 0) return;