void client_adjust(Client* c)
{
- client_move(c, 0, 0);
- client_resize(c, 0, 0);
+ if (c->w < MIN_HEIGHT) c->w = MIN_HEIGHT;
+ if (c->h < MIN_HEIGHT) c->h = MIN_HEIGHT;
+ XMoveResizeWindow(X.disp, c->frame, c->x, c->y, c->w, c->h);
+ printf("CONFIG(c: %lx x: %d y: %d w: %d h: %d)\n", c->frame, c->x, c->y, c->w, c->h);
+ if ( !(c->flags & F_SHADED) )
+ {
+ XResizeWindow(X.disp, c->win,
+ c->w - 2*BORDER_WIDTH - 2,
+ c->h - 2*BORDER_WIDTH - TITLE_HEIGHT - 2);
+ }
+ mons_place(c);
}
void client_move(Client* c, int xdiff, int ydiff)
{
c->x += xdiff;
c->y += ydiff;
- printf("MOVE(c: %lx x: %d y: %d)\n", c->frame, c->x, c->y);
- XMoveWindow(X.disp, c->frame, c->x, c->y);
- mons_place(c);
+ client_adjust(c);
}
void client_resize(Client* c, int xdiff, int ydiff)
{
c->w += xdiff;
c->h += ydiff;
- if (c->w < MIN_HEIGHT) c->w = MIN_HEIGHT;
- if (c->h < MIN_HEIGHT) c->h = MIN_HEIGHT;
- if (c->flags & F_SHADED)
- {
- XResizeWindow(X.disp, c->frame, c->w, MIN_HEIGHT);
- }
- else
- {
- XResizeWindow(X.disp, c->frame, c->w, c->h);
- printf("RESIZE(c: %lx w: %d h: %d)\n",
- c->win,
- c->w - 2*BORDER_WIDTH - 2,
- c->h - 2*BORDER_WIDTH - TITLE_HEIGHT - 2
- );
- XResizeWindow(X.disp, c->win,
- c->w - 2*BORDER_WIDTH - 2,
- c->h - 2*BORDER_WIDTH - TITLE_HEIGHT - 2
- );
- }
- mons_place(c);
+ client_adjust(c);
}
void client_close(Client* c)
void client_shade(Client* c)
{
- if (c->flags & F_SHADED)
- {
- client_setshade(c, 0);
- }
- else
- {
- client_setshade(c, 1);
- }
+ client_setshade(c, ((c->flags & F_SHADED) ? 0 : 1));
client_adjust(c);
}