Mercurial > dwm-meillo
comparison client.c @ 500:d5ad819f2a66 1.7.1
fixing the settags issue, preparing 1.7.1
author | Anselm R. Garbe <arg@10kloc.org> |
---|---|
date | Wed, 27 Sep 2006 17:18:46 +0200 |
parents | 12395ef46d97 |
children | 9aa3d06199cb |
comparison
equal
deleted
inserted
replaced
499:2ca011c56385 | 500:d5ad819f2a66 |
---|---|
50 GrabModeAsync, GrabModeSync, None, None); | 50 GrabModeAsync, GrabModeSync, None, None); |
51 } | 51 } |
52 else | 52 else |
53 XGrabButton(dpy, AnyButton, AnyModifier, c->win, False, BUTTONMASK, | 53 XGrabButton(dpy, AnyButton, AnyModifier, c->win, False, BUTTONMASK, |
54 GrabModeAsync, GrabModeSync, None, None); | 54 GrabModeAsync, GrabModeSync, None, None); |
55 } | |
56 | |
57 static void | |
58 resizetitle(Client *c) { | |
59 c->tw = textw(c->name); | |
60 if(c->tw > c->w) | |
61 c->tw = c->w + 2; | |
62 c->tx = c->x + c->w - c->tw + 2; | |
63 c->ty = c->y; | |
64 if(isvisible(c)) | |
65 XMoveResizeWindow(dpy, c->twin, c->tx, c->ty, c->tw, c->th); | |
66 else | |
67 XMoveResizeWindow(dpy, c->twin, c->tx + 2 * sw, c->ty, c->tw, c->th); | |
68 } | 55 } |
69 | 56 |
70 static int | 57 static int |
71 xerrordummy(Display *dsply, XErrorEvent *ee) { | 58 xerrordummy(Display *dsply, XErrorEvent *ee) { |
72 return 0; | 59 return 0; |
248 0, DefaultDepth(dpy, screen), CopyFromParent, | 235 0, DefaultDepth(dpy, screen), CopyFromParent, |
249 DefaultVisual(dpy, screen), | 236 DefaultVisual(dpy, screen), |
250 CWOverrideRedirect | CWBackPixmap | CWEventMask, &twa); | 237 CWOverrideRedirect | CWBackPixmap | CWEventMask, &twa); |
251 | 238 |
252 grabbuttons(c, False); | 239 grabbuttons(c, False); |
240 updatetitle(c); | |
253 settags(c, getclient(trans)); | 241 settags(c, getclient(trans)); |
254 if(!c->isfloat) | 242 if(!c->isfloat) |
255 c->isfloat = trans | 243 c->isfloat = trans |
256 || (c->maxw && c->minw && | 244 || (c->maxw && c->minw && |
257 c->maxw == c->minw && c->maxh == c->minh); | 245 c->maxw == c->minw && c->maxh == c->minh); |
246 resizetitle(c); | |
258 | 247 |
259 if(clients) | 248 if(clients) |
260 clients->prev = c; | 249 clients->prev = c; |
261 c->next = clients; | 250 c->next = clients; |
262 c->snext = stack; | 251 c->snext = stack; |
263 stack = clients = c; | 252 stack = clients = c; |
264 | 253 |
265 updatetitle(c); | |
266 ban(c); | 254 ban(c); |
267 XMapWindow(dpy, c->win); | 255 XMapWindow(dpy, c->win); |
268 XMapWindow(dpy, c->twin); | 256 XMapWindow(dpy, c->twin); |
269 if(isvisible(c)) | 257 if(isvisible(c)) |
270 focus(c); | 258 focus(c); |
316 else | 304 else |
317 wc.border_width = 1; | 305 wc.border_width = 1; |
318 XConfigureWindow(dpy, c->win, CWX | CWY | CWWidth | CWHeight | CWBorderWidth, &wc); | 306 XConfigureWindow(dpy, c->win, CWX | CWY | CWWidth | CWHeight | CWBorderWidth, &wc); |
319 configure(c); | 307 configure(c); |
320 XSync(dpy, False); | 308 XSync(dpy, False); |
309 } | |
310 | |
311 void | |
312 resizetitle(Client *c) { | |
313 c->tw = textw(c->name); | |
314 if(c->tw > c->w) | |
315 c->tw = c->w + 2; | |
316 c->tx = c->x + c->w - c->tw + 2; | |
317 c->ty = c->y; | |
318 if(isvisible(c)) | |
319 XMoveResizeWindow(dpy, c->twin, c->tx, c->ty, c->tw, c->th); | |
320 else | |
321 XMoveResizeWindow(dpy, c->twin, c->tx + 2 * sw, c->ty, c->tw, c->th); | |
321 } | 322 } |
322 | 323 |
323 void | 324 void |
324 updatesize(Client *c) { | 325 updatesize(Client *c) { |
325 long msize; | 326 long msize; |
380 strncpy(c->name, *list, sizeof(c->name)); | 381 strncpy(c->name, *list, sizeof(c->name)); |
381 XFreeStringList(list); | 382 XFreeStringList(list); |
382 } | 383 } |
383 } | 384 } |
384 XFree(name.value); | 385 XFree(name.value); |
385 resizetitle(c); | |
386 } | 386 } |
387 | 387 |
388 void | 388 void |
389 unmanage(Client *c) { | 389 unmanage(Client *c) { |
390 Client *nc; | 390 Client *nc; |