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;
{
gboolean moved = FALSE, resized = FALSE;
+ /* gets the frame's position */
+ frame_client_gravity(self->frame, &x, &y);
+
+ /* these positions are frame positions, not client positions */
+
/* set the size and position if fullscreen */
if (self->fullscreen) {
x = 0;
}
}
+ /* gets the client's position */
+ frame_frame_gravity(self->frame, &x, &y);
+
/* these override the above states! if you cant move you can't move! */
if (user) {
if (!(self->functions & Func_Move)) {
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 */
return &self->icons[si];
return &self->icons[li];
}
-
-void client_disable_decorations(Client *self, int flags)
-{
- self->disabled_decorations = flags;
- client_setup_decor_and_functions(self);
-}