diff options
Diffstat (limited to 'client.c')
-rw-r--r-- | client.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/client.c b/client.c index beb7e35..af2c249 100644 --- a/client.c +++ b/client.c @@ -267,7 +267,7 @@ maximize(Arg *arg) *sel->w = sw - 2 * sel->border; *sel->h = sh - 2 * sel->border - bh; higher(sel); - resize(sel, False); + resize(sel, False, TopLeft); } void @@ -283,9 +283,11 @@ pop(Client *c) } void -resize(Client *c, Bool inc) +resize(Client *c, Bool inc, Corner sticky) { XConfigureEvent e; + int right = *c->x + *c->w; + int bottom = *c->y + *c->h; if(inc) { if(c->incw) @@ -305,6 +307,10 @@ resize(Client *c, Bool inc) *c->w = c->maxw; if(c->maxh && *c->h > c->maxh) *c->h = c->maxh; + if(sticky == TopRight || sticky == BottomRight) + *c->x = right - *c->w; + if(sticky == BottomLeft || sticky == BottomRight) + *c->y = bottom - *c->h; resizetitle(c); XSetWindowBorderWidth(dpy, c->win, 1); XMoveResizeWindow(dpy, c->win, *c->x, *c->y, *c->w, *c->h); |