changeset 124 | 75576e44c1d8 |
parent 123 | 61490330e90a |
child 127 | 1480e19f6377 |
123:61490330e90a | 124:75576e44c1d8 |
---|---|
68 Client *c; |
68 Client *c; |
69 |
69 |
70 if(!sel) |
70 if(!sel) |
71 return; |
71 return; |
72 |
72 |
73 if(sel->ismax) |
|
74 togglemax(NULL); |
|
75 |
|
73 if(!(c = getnext(sel->next, tsel))) |
76 if(!(c = getnext(sel->next, tsel))) |
74 c = getnext(clients, tsel); |
77 c = getnext(clients, tsel); |
75 if(c) { |
78 if(c) { |
76 higher(c); |
79 higher(c); |
77 c->revert = sel; |
80 c->revert = sel; |
84 { |
87 { |
85 Client *c; |
88 Client *c; |
86 |
89 |
87 if(!sel) |
90 if(!sel) |
88 return; |
91 return; |
92 |
|
93 if(sel->ismax) |
|
94 togglemax(NULL); |
|
89 |
95 |
90 if((c = sel->revert && sel->revert->tags[tsel] ? sel->revert : NULL)) { |
96 if((c = sel->revert && sel->revert->tags[tsel] ? sel->revert : NULL)) { |
91 higher(c); |
97 higher(c); |
92 focus(c); |
98 focus(c); |
93 } |
99 } |
232 settags(c); |
238 settags(c); |
233 |
239 |
234 c->next = clients; |
240 c->next = clients; |
235 clients = c; |
241 clients = c; |
236 |
242 |
237 XGrabButton(dpy, Button1, ControlMask, c->win, False, ButtonPressMask, |
|
238 GrabModeAsync, GrabModeSync, None, None); |
|
239 XGrabButton(dpy, Button1, MODKEY, c->win, False, ButtonPressMask, |
243 XGrabButton(dpy, Button1, MODKEY, c->win, False, ButtonPressMask, |
240 GrabModeAsync, GrabModeSync, None, None); |
244 GrabModeAsync, GrabModeSync, None, None); |
241 XGrabButton(dpy, Button2, MODKEY, c->win, False, ButtonPressMask, |
245 XGrabButton(dpy, Button2, MODKEY, c->win, False, ButtonPressMask, |
242 GrabModeAsync, GrabModeSync, None, None); |
246 GrabModeAsync, GrabModeSync, None, None); |
243 XGrabButton(dpy, Button3, MODKEY, c->win, False, ButtonPressMask, |
247 XGrabButton(dpy, Button3, MODKEY, c->win, False, ButtonPressMask, |
259 } |
263 } |
260 else { |
264 else { |
261 XMapRaised(dpy, c->win); |
265 XMapRaised(dpy, c->win); |
262 XMapRaised(dpy, c->title); |
266 XMapRaised(dpy, c->title); |
263 } |
267 } |
264 } |
|
265 |
|
266 void |
|
267 maximize(Arg *arg) |
|
268 { |
|
269 if(!sel) |
|
270 return; |
|
271 sel->x = sx; |
|
272 sel->y = sy + bh; |
|
273 sel->w = sw - 2 * sel->border; |
|
274 sel->h = sh - 2 * sel->border - bh; |
|
275 higher(sel); |
|
276 resize(sel, False, TopLeft); |
|
277 } |
268 } |
278 |
269 |
279 void |
270 void |
280 pop(Client *c) |
271 pop(Client *c) |
281 { |
272 { |
403 XFree(name.value); |
394 XFree(name.value); |
404 resizetitle(c); |
395 resizetitle(c); |
405 } |
396 } |
406 |
397 |
407 void |
398 void |
399 togglemax(Arg *arg) |
|
400 { |
|
401 int ox, oy, ow, oh; |
|
402 XEvent ev; |
|
403 |
|
404 if(!sel) |
|
405 return; |
|
406 |
|
407 if((sel->ismax = !sel->ismax)) { |
|
408 ox = sel->x; |
|
409 oy = sel->y; |
|
410 ow = sel->w; |
|
411 oh = sel->h; |
|
412 sel->x = sx; |
|
413 sel->y = sy + bh; |
|
414 sel->w = sw - 2 * sel->border; |
|
415 sel->h = sh - 2 * sel->border - bh; |
|
416 |
|
417 higher(sel); |
|
418 resize(sel, False, TopLeft); |
|
419 |
|
420 sel->x = ox; |
|
421 sel->y = oy; |
|
422 sel->w = ow; |
|
423 sel->h = oh; |
|
424 } |
|
425 else |
|
426 resize(sel, False, TopLeft); |
|
427 while(XCheckMaskEvent(dpy, EnterWindowMask, &ev)); |
|
428 } |
|
429 |
|
430 void |
|
408 unmanage(Client *c) |
431 unmanage(Client *c) |
409 { |
432 { |
410 Client **l; |
433 Client **l; |
411 |
434 |
412 XGrabServer(dpy); |
435 XGrabServer(dpy); |