JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
fixing the settags issue, preparing 1.7.1
authorAnselm R. Garbe <arg@10kloc.org>
Wed, 27 Sep 2006 15:18:46 +0000 (17:18 +0200)
committerAnselm R. Garbe <arg@10kloc.org>
Wed, 27 Sep 2006 15:18:46 +0000 (17:18 +0200)
client.c
config.mk
dwm.h
event.c

index 87c2f76..6b0322e 100644 (file)
--- a/client.c
+++ b/client.c
@@ -54,19 +54,6 @@ grabbuttons(Client *c, Bool focused) {
                                GrabModeAsync, GrabModeSync, None, None);
 }
 
-static void
-resizetitle(Client *c) {
-       c->tw = textw(c->name);
-       if(c->tw > c->w)
-               c->tw = c->w + 2;
-       c->tx = c->x + c->w - c->tw + 2;
-       c->ty = c->y;
-       if(isvisible(c))
-               XMoveResizeWindow(dpy, c->twin, c->tx, c->ty, c->tw, c->th);
-       else
-               XMoveResizeWindow(dpy, c->twin, c->tx + 2 * sw, c->ty, c->tw, c->th);
-}
-
 static int
 xerrordummy(Display *dsply, XErrorEvent *ee) {
        return 0;
@@ -250,11 +237,13 @@ manage(Window w, XWindowAttributes *wa) {
                        CWOverrideRedirect | CWBackPixmap | CWEventMask, &twa);
 
        grabbuttons(c, False);
+       updatetitle(c);
        settags(c, getclient(trans));
        if(!c->isfloat)
                c->isfloat = trans
                        || (c->maxw && c->minw &&
                                c->maxw == c->minw && c->maxh == c->minh);
+       resizetitle(c);
 
        if(clients)
                clients->prev = c;
@@ -262,7 +251,6 @@ manage(Window w, XWindowAttributes *wa) {
        c->snext = stack;
        stack = clients = c;
 
-       updatetitle(c);
        ban(c);
        XMapWindow(dpy, c->win);
        XMapWindow(dpy, c->twin);
@@ -321,6 +309,19 @@ resize(Client *c, Bool sizehints, Corner sticky) {
 }
 
 void
+resizetitle(Client *c) {
+       c->tw = textw(c->name);
+       if(c->tw > c->w)
+               c->tw = c->w + 2;
+       c->tx = c->x + c->w - c->tw + 2;
+       c->ty = c->y;
+       if(isvisible(c))
+               XMoveResizeWindow(dpy, c->twin, c->tx, c->ty, c->tw, c->th);
+       else
+               XMoveResizeWindow(dpy, c->twin, c->tx + 2 * sw, c->ty, c->tw, c->th);
+}
+
+void
 updatesize(Client *c) {
        long msize;
        XSizeHints size;
@@ -382,7 +383,6 @@ updatetitle(Client *c) {
                }
        }
        XFree(name.value);
-       resizetitle(c);
 }
 
 void
index 8282cb4..3872652 100644 (file)
--- a/config.mk
+++ b/config.mk
@@ -1,5 +1,5 @@
 # dwm version
-VERSION = 1.7
+VERSION = 1.7.1
 
 # Customize below to fit your system
 
diff --git a/dwm.h b/dwm.h
index 269c78e..85c85a3 100644 (file)
--- a/dwm.h
+++ b/dwm.h
@@ -117,6 +117,7 @@ extern void gravitate(Client *c, Bool invert);      /* gravitate c */
 extern void killclient(Arg *arg);              /* kill c nicely */
 extern void manage(Window w, XWindowAttributes *wa);   /* manage new client */
 extern void resize(Client *c, Bool sizehints, Corner sticky); /* resize c*/
+extern void resizetitle(Client *c);            /* resizes c->twin correctly */
 extern void updatesize(Client *c);                     /* update the size structs of c */
 extern void updatetitle(Client *c);            /* update the name of c */
 extern void unmanage(Client *c);               /* destroy c */
diff --git a/event.c b/event.c
index 76f3602..2df3821 100644 (file)
--- a/event.c
+++ b/event.c
@@ -316,6 +316,7 @@ propertynotify(XEvent *e) {
                }
                if(ev->atom == XA_WM_NAME || ev->atom == netatom[NetWMName]) {
                        updatetitle(c);
+                       resizetitle(c);
                        drawtitle(c);
                }
        }