changed ban/unban implementation to not move the windows anymore, but map/unmap them instead - PLEASE TEST THIS

This commit is contained in:
Anselm R. Garbe 2007-07-28 17:18:45 +02:00
parent 4b9337a01e
commit a54cf2ecef
4 changed files with 15 additions and 11 deletions

View File

@ -100,8 +100,10 @@ void
ban(Client *c) {
if(c->isbanned)
return;
XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y);
XUnmapWindow(dpy, c->win);
setclientstate(c, IconicState);
c->isbanned = True;
c->unmapped++;
}
void
@ -224,9 +226,7 @@ manage(Window w, XWindowAttributes *wa) {
c->isfloating = (rettrans == Success) || c->isfixed;
attach(c);
attachstack(c);
ban(c);
XMapWindow(dpy, w);
setclientstate(c, NormalState);
c->isbanned = True;
focus(c);
lt->arrange();
}
@ -310,7 +310,8 @@ void
unban(Client *c) {
if(!c->isbanned)
return;
XMoveWindow(dpy, c->win, c->x, c->y);
XMapWindow(dpy, c->win);
setclientstate(c, NormalState);
c->isbanned = False;
}

View File

@ -1,5 +1,5 @@
# dwm version
VERSION = 4.3
VERSION = 4.4
# Customize below to fit your system

1
dwm.h
View File

@ -48,6 +48,7 @@ struct Client {
int rx, ry, rw, rh; /* revert geometry */
int basew, baseh, incw, inch, maxw, maxh, minw, minh;
int minax, maxax, minay, maxay;
int unmapped;
long flags;
unsigned int border, oldborder;
Bool isbanned, isfixed, ismax, isfloating;

View File

@ -336,9 +336,11 @@ unmapnotify(XEvent *e) {
Client *c;
XUnmapEvent *ev = &e->xunmap;
if((c = getclient(ev->window)))
if((c = getclient(ev->window)) && (ev->event == root)) {
if(ev->send_event || c->unmapped-- == 0)
unmanage(c);
}
}
/* extern */