tadded ban() which takes care than a banned window is not banned again... (this… | |
git clone git://src.adamsgaard.dk/dwm | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 3ce8c9f33844a995e79329978db9d2cd3981e032 | |
parent 0d095ae2ff0e8d703e4a8c9a20cd061c4bdcc6e2 | |
Author: Anselm R. Garbe <[email protected]> | |
Date: Wed, 14 Feb 2007 14:01:12 +0100 | |
added ban() which takes care than a banned window is not banned again... (this … | |
Diffstat: | |
M client.c | 10 +++++++++- | |
M config.mk | 2 +- | |
M dwm.h | 3 ++- | |
M event.c | 2 +- | |
M view.c | 9 ++++++--- | |
5 files changed, 19 insertions(+), 7 deletions(-) | |
--- | |
diff --git a/client.c b/client.c | |
t@@ -68,6 +68,14 @@ xerrordummy(Display *dsply, XErrorEvent *ee) { | |
/* extern */ | |
void | |
+ban(Client *c) { | |
+ if(!c || c->isbanned) | |
+ return; | |
+ c->isbanned = True; | |
+ XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y); | |
+} | |
+ | |
+void | |
configure(Client *c) { | |
XConfigureEvent ce; | |
t@@ -190,7 +198,7 @@ manage(Window w, XWindowAttributes *wa) { | |
c->next = clients; | |
c->snext = stack; | |
stack = clients = c; | |
- XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y); | |
+ ban(c); | |
XMapWindow(dpy, c->win); | |
setclientstate(c, NormalState); | |
if(isvisible(c)) | |
diff --git a/config.mk b/config.mk | |
t@@ -1,5 +1,5 @@ | |
# dwm version | |
-VERSION = 3.5 | |
+VERSION = 3.6 | |
# Customize below to fit your system | |
diff --git a/dwm.h b/dwm.h | |
t@@ -73,7 +73,7 @@ struct Client { | |
int minax, minay, maxax, maxay; | |
long flags; | |
unsigned int border; | |
- Bool isfixed, isfloat, ismax; | |
+ Bool isbanned, isfixed, isfloat, ismax; | |
Bool *tags; | |
Client *next; | |
Client *prev; | |
t@@ -99,6 +99,7 @@ extern Display *dpy; | |
extern Window root, barwin; | |
/* client.c */ | |
+extern void ban(Client *c); /* ban c */ | |
extern void configure(Client *c); /* send synthetic configure e… | |
extern void focus(Client *c); /* focus c, c may be NULL… | |
extern Client *getclient(Window w); /* return client of w */ | |
diff --git a/event.c b/event.c | |
t@@ -189,7 +189,7 @@ configurerequest(XEvent *e) { | |
configure(c); | |
resize(c, False); | |
if(!isvisible(c)) | |
- XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y); | |
+ ban(c); | |
} | |
else | |
configure(c); | |
diff --git a/view.c b/view.c | |
t@@ -55,10 +55,12 @@ dofloat(void) { | |
Client *c; | |
for(c = clients; c; c = c->next) { | |
- if(isvisible(c)) | |
+ if(isvisible(c)) { | |
+ c->isbanned = False; | |
resize(c, True); | |
+ } | |
else | |
- XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y); | |
+ ban(c); | |
} | |
if(!sel || !isvisible(sel)) { | |
for(c = stack; c && !isvisible(c); c = c->snext); | |
t@@ -82,6 +84,7 @@ dotile(void) { | |
for(i = 0, c = clients; c; c = c->next) | |
if(isvisible(c)) { | |
+ c->isbanned = False; | |
if(c->isfloat) { | |
resize(c, True); | |
continue; | |
t@@ -108,7 +111,7 @@ dotile(void) { | |
i++; | |
} | |
else | |
- XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y); | |
+ ban(c); | |
if(!sel || !isvisible(sel)) { | |
for(c = stack; c && !isvisible(c); c = c->snext); | |
focus(c); |