From 6092aa977e9cc87bcf72713af8e7c698ddea4b56 Mon Sep 17 00:00:00 2001 From: "Anselm R. Garbe" Date: Wed, 27 Sep 2006 17:18:46 +0200 Subject: [PATCH] fixing the settags issue, preparing 1.7.1 --- client.c | 30 +++++++++++++++--------------- config.mk | 2 +- dwm.h | 1 + event.c | 1 + 4 files changed, 18 insertions(+), 16 deletions(-) diff --git a/client.c b/client.c index 87c2f76..6b0322e 100644 --- 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); @@ -320,6 +308,19 @@ resize(Client *c, Bool sizehints, Corner sticky) { XSync(dpy, False); } +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; @@ -382,7 +383,6 @@ updatetitle(Client *c) { } } XFree(name.value); - resizetitle(c); } void diff --git a/config.mk b/config.mk index 8282cb4..3872652 100644 --- 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 --- 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 --- 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); } }