36 lines
1.1 KiB
Diff
36 lines
1.1 KiB
Diff
diff --git a/dwm.c b/dwm.c
|
|
index 0362114..e4e8514 100644
|
|
--- a/dwm.c
|
|
+++ b/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;
|
|
@@ -621,6 +621,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 {
|
|
@@ -1611,6 +1613,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);
|