equal
deleted
inserted
replaced
92 uint tags; |
92 uint tags; |
93 Bool isfixed, isfloating, isurgent; |
93 Bool isfixed, isfloating, isurgent; |
94 Client *next; |
94 Client *next; |
95 Client *snext; |
95 Client *snext; |
96 Window win; |
96 Window win; |
|
97 void *aux; |
|
98 void (*freeaux)(void *); |
97 }; |
99 }; |
98 |
100 |
99 typedef struct { |
101 typedef struct { |
100 int x, y, w, h; |
102 int x, y, w, h; |
101 ulong norm[ColLast]; |
103 ulong norm[ColLast]; |
1517 XConfigureWindow(dpy, c->win, CWBorderWidth, &wc); /* restore border */ |
1519 XConfigureWindow(dpy, c->win, CWBorderWidth, &wc); /* restore border */ |
1518 detach(c); |
1520 detach(c); |
1519 detachstack(c); |
1521 detachstack(c); |
1520 if(sel == c) |
1522 if(sel == c) |
1521 focus(NULL); |
1523 focus(NULL); |
|
1524 if(c->aux && c->freeaux) |
|
1525 c->freeaux(c->aux); |
1522 XUngrabButton(dpy, AnyButton, AnyModifier, c->win); |
1526 XUngrabButton(dpy, AnyButton, AnyModifier, c->win); |
1523 setclientstate(c, WithdrawnState); |
1527 setclientstate(c, WithdrawnState); |
1524 free(c); |
1528 free(c); |
1525 XSync(dpy, False); |
1529 XSync(dpy, False); |
1526 XSetErrorHandler(xerror); |
1530 XSetErrorHandler(xerror); |
1640 } |
1644 } |
1641 } |
1645 } |
1642 |
1646 |
1643 void |
1647 void |
1644 view(const Arg *arg) { |
1648 view(const Arg *arg) { |
|
1649 if(arg && (arg->i & TAGMASK) == tagset[seltags]) |
|
1650 return; |
1645 seltags ^= 1; /* toggle sel tagset */ |
1651 seltags ^= 1; /* toggle sel tagset */ |
1646 if(arg && (arg->ui & TAGMASK)) |
1652 if(arg && (arg->ui & TAGMASK)) |
1647 tagset[seltags] = arg->i & TAGMASK; |
1653 tagset[seltags] = arg->i & TAGMASK; |
1648 arrange(); |
1654 arrange(); |
1649 } |
1655 } |