diff --git a/src/client.c b/src/client.c index 54609b2..ba31219 100644 --- a/src/client.c +++ b/src/client.c @@ -1090,18 +1090,22 @@ client_winsize(struct client *c, struct geo *g) { int ow, oh; struct geo og = c->wgeo; + struct geo tmp = *g; + + tmp.w -= W->padding >> 1; + tmp.h -= W->padding >> 1; /* Window geo */ c->wgeo.x = c->border; c->wgeo.y = c->tbarw; - c->wgeo.h = oh = g->h - (c->border + c->tbarw); - c->wgeo.w = ow = g->w - (c->border << 1); + c->wgeo.h = oh = tmp.h - (c->border + c->tbarw); + c->wgeo.w = ow = tmp.w - (c->border << 1); client_geo_hints(&c->wgeo, (int*)c->sizeh); /* Check possible problem for tile integration */ if(ow < c->sizeh[MINW] || oh < c->sizeh[MINH]) - if(g->w < c->geo.w || g->h < c->geo.h) + if(tmp.w < c->geo.w || tmp.h < c->geo.h) { c->wgeo = og; return true; @@ -1171,16 +1175,21 @@ client_moveresize(struct client *c, struct geo *g) c->rgeo.x += c->screen->ugeo.x; c->rgeo.y += c->screen->ugeo.y; + + c->rgeo.x += W->padding >> 2; + c->rgeo.y += W->padding >> 2; + c->rgeo.w -= W->padding >> 1; + c->rgeo.h -= W->padding >> 1; } XMoveResizeWindow(W->dpy, c->frame, - c->rgeo.x + W->padding / 4, c->rgeo.y + W->padding / 4, - c->rgeo.w - W->padding / 2, c->rgeo.h - W->padding / 2); + c->rgeo.x, c->rgeo.y, + c->rgeo.w, c->rgeo.h); if(!(c->flags & CLIENT_FULLSCREEN)) XMoveResizeWindow(W->dpy, c->win, c->wgeo.x, c->wgeo.y, - c->wgeo.w - W->padding / 2, c->wgeo.h - W->padding / 2); + c->wgeo.w, c->wgeo.h); c->flags &= ~CLIENT_DID_WINSIZE; diff --git a/src/draw.h b/src/draw.h index f67b7aa..0ccb37c 100644 --- a/src/draw.h +++ b/src/draw.h @@ -76,11 +76,22 @@ draw_reversed_rect(Drawable dr, struct client *c, bool t) struct geo *ug = &c->screen->ugeo; int i = c->theme->client_border_width; - XDrawRectangle(W->dpy, dr, W->rgc, - ug->x + g->x + i, - ug->y + g->y + i, - g->w - (i << 1), - g->h - (i << 1)); + if(c->flags & CLIENT_FREE) + { + XDrawRectangle(W->dpy, dr, W->rgc, + ug->x + g->x + i, + ug->y + g->y + i, + g->w - (i << 1), + g->h - (i << 1)); + } + else + { + XDrawRectangle(W->dpy, dr, W->rgc, + ug->x + g->x + i + W->padding >> 2, + ug->y + g->y + i + W->padding >> 2, + g->w - (i << 1) - W->padding >> 1, + g->h - (i << 1) - W->padding >> 1); + } } static inline void diff --git a/wmfsrc b/wmfsrc index 93de57f..f851c8b 100644 --- a/wmfsrc +++ b/wmfsrc @@ -118,7 +118,7 @@ [client] # Padding betwen clients (default: 0) : - # padding = 75 + padding = 75 theme = "default" key_modifier = "Super"