402 |
402 |
403 for(l = &clients; *l; l = &(*l)->next); |
403 for(l = &clients; *l; l = &(*l)->next); |
404 c->next = *l; /* *l == nil */ |
404 c->next = *l; /* *l == nil */ |
405 *l = c; |
405 *l = c; |
406 |
406 |
407 XMapRaised(dpy, c->win); |
|
408 XMapRaised(dpy, c->title); |
|
409 XGrabButton(dpy, Button1, Mod1Mask, c->win, False, ButtonPressMask, |
407 XGrabButton(dpy, Button1, Mod1Mask, c->win, False, ButtonPressMask, |
410 GrabModeAsync, GrabModeSync, None, None); |
408 GrabModeAsync, GrabModeSync, None, None); |
411 XGrabButton(dpy, Button2, Mod1Mask, c->win, False, ButtonPressMask, |
409 XGrabButton(dpy, Button2, Mod1Mask, c->win, False, ButtonPressMask, |
412 GrabModeAsync, GrabModeSync, None, None); |
410 GrabModeAsync, GrabModeSync, None, None); |
413 XGrabButton(dpy, Button3, Mod1Mask, c->win, False, ButtonPressMask, |
411 XGrabButton(dpy, Button3, Mod1Mask, c->win, False, ButtonPressMask, |
416 if(!c->floating) |
414 if(!c->floating) |
417 c->floating = trans |
415 c->floating = trans |
418 || ((c->maxw == c->minw) && (c->maxh == c->minh)); |
416 || ((c->maxw == c->minw) && (c->maxh == c->minh)); |
419 |
417 |
420 arrange(NULL); |
418 arrange(NULL); |
421 if(c->tags[tsel]) |
419 /* mapping the window now prevents flicker */ |
|
420 if(c->tags[tsel]) { |
|
421 XMapRaised(dpy, c->win); |
|
422 XMapRaised(dpy, c->title); |
422 focus(c); |
423 focus(c); |
423 else |
424 } |
|
425 else { |
424 ban_client(c); |
426 ban_client(c); |
|
427 XMapRaised(dpy, c->win); |
|
428 XMapRaised(dpy, c->title); |
|
429 } |
425 } |
430 } |
426 |
431 |
427 void |
432 void |
428 gravitate(Client *c, Bool invert) |
433 gravitate(Client *c, Bool invert) |
429 { |
434 { |