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;