JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
added ban() which takes care than a banned window is not banned again... (this reduce...
[dwm.git] / client.c
index b9c519b..3505e76 100644 (file)
--- a/client.c
+++ b/client.c
@@ -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;
 
@@ -148,7 +156,7 @@ killclient(Arg *arg) {
 
 void
 manage(Window w, XWindowAttributes *wa) {
-       Client *c;
+       Client *c, *t;
        Window trans;
 
        c = emallocz(sizeof(Client));
@@ -181,15 +189,16 @@ manage(Window w, XWindowAttributes *wa) {
        grabbuttons(c, False);
        XSetWindowBorder(dpy, c->win, dc.norm[ColBorder]);
        updatetitle(c);
-       settags(c, getclient(trans));
+       t = getclient(trans);
+       settags(c, t);
        if(!c->isfloat)
-               c->isfloat = trans || c->isfixed;
+               c->isfloat = (t != 0) || c->isfixed;
        if(clients)
                clients->prev = c;
        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))
@@ -303,8 +312,8 @@ updatesizehints(Client *c) {
        }
        else
                c->minax = c->minay = c->maxax = c->maxay = 0;
-       c->isfixed = (c->maxw && c->minw && c->maxh && c->minh &&
-                               c->maxw == c->minw && c->maxh == c->minh);
+       c->isfixed = (c->maxw && c->minw && c->maxh && c->minh
+                       && c->maxw == c->minw && c->maxh == c->minh);
 }
 
 void
@@ -324,7 +333,7 @@ updatetitle(Client *c) {
                strncpy(c->name, (char *)name.value, sizeof c->name);
        else {
                if(XmbTextPropertyToTextList(dpy, &name, &list, &n) >= Success
-                               && n > 0 && *list)
+               && n > 0 && *list)
                {
                        strncpy(c->name, *list, sizeof c->name);
                        XFreeStringList(list);