w = client_startup_stack_order[i-1];
c = g_hash_table_lookup(client_map, &w);
- g_message("0x%lx %d %d", c->window, c->iconic, c->shaded);
if (c) stacking_lower(c);
}
g_free(client_startup_stack_order);
{
/* start with everything (cept fullscreen) */
self->decorations = Decor_Titlebar | Decor_Handle | Decor_Border |
- Decor_Icon | Decor_AllDesktops | Decor_Iconify | Decor_Maximize;
+ Decor_Icon | Decor_AllDesktops | Decor_Iconify | Decor_Maximize |
+ Decor_Shade;
self->functions = Func_Resize | Func_Move | Func_Iconify | Func_Maximize |
Func_Shade;
if (self->delete_window) {
self->decorations &= ~Decor_Maximize;
if (self->disabled_decorations & Decor_AllDesktops)
self->decorations &= ~Decor_AllDesktops;
+ if (self->disabled_decorations & Decor_Shade)
+ self->decorations &= ~Decor_Shade;
if (self->disabled_decorations & Decor_Close)
self->decorations &= ~Decor_Close;
PROP_SET32A(self->window, openbox_premax, cardinal,
dimensions, 4);
}
-
- /* pass the client's current position info. the client_configure
- will move/size stuff as appropriate for a maximized window */
- x = self->area.x;
- y = self->area.y;
- w = self->area.width;
- h = self->area.height;
} else {
long *dimensions;
void client_shade(Client *self, gboolean shade)
{
- if (!(self->functions & Func_Shade) || /* can't */
+ if ((!(self->functions & Func_Shade) && shade) || /* can't shade */
self->shaded == shade) return; /* already done */
/* when we're iconic, don't change the wmstate */