autoresize patch
This commit is contained in:
10
dwm.c
10
dwm.c
@@ -92,7 +92,7 @@ struct Client {
|
||||
int basew, baseh, incw, inch, maxw, maxh, minw, minh;
|
||||
int bw, oldbw;
|
||||
unsigned int tags;
|
||||
int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen;
|
||||
int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen, needresize;
|
||||
Client *next;
|
||||
Client *snext;
|
||||
Monitor *mon;
|
||||
@@ -672,6 +672,8 @@ configurerequest(XEvent *e)
|
||||
configure(c);
|
||||
if (ISVISIBLE(c))
|
||||
XMoveResizeWindow(dpy, c->win, c->x, c->y, c->w, c->h);
|
||||
else
|
||||
c->needresize = 1;
|
||||
} else
|
||||
configure(c);
|
||||
} else {
|
||||
@@ -1760,6 +1762,12 @@ showhide(Client *c)
|
||||
if (ISVISIBLE(c)) {
|
||||
/* show clients top down */
|
||||
XMoveWindow(dpy, c->win, c->x, c->y);
|
||||
if (c->needresize) {
|
||||
c->needresize = 0;
|
||||
XMoveResizeWindow(dpy, c->win, c->x, c->y, c->w, c->h);
|
||||
} else {
|
||||
XMoveWindow(dpy, c->win, c->x, c->y);
|
||||
}
|
||||
if ((!c->mon->lt[c->mon->sellt]->arrange || c->isfloating) && !c->isfullscreen)
|
||||
resize(c, c->x, c->y, c->w, c->h, 0);
|
||||
showhide(c->snext);
|
||||
|
Reference in New Issue
Block a user