Mercurial > dwm-meillo
comparison view.c @ 443:548084f8d92e
this patch keeps track of global z-layer order of clients which are floating or if floating mode is enabled
author | Anselm R. Garbe <arg@10kloc.org> |
---|---|
date | Wed, 06 Sep 2006 17:31:52 +0200 |
parents | 056a5072c70a |
children | a2e587651c79 |
comparison
equal
deleted
inserted
replaced
442:056a5072c70a | 443:548084f8d92e |
---|---|
10 static Client * | 10 static Client * |
11 minclient() | 11 minclient() |
12 { | 12 { |
13 Client *c, *min; | 13 Client *c, *min; |
14 | 14 |
15 if((clients && clients->isfloat) || arrange == dofloat) | |
16 return clients; /* don't touch floating order */ | |
15 for(min = c = clients; c; c = c->next) | 17 for(min = c = clients; c; c = c->next) |
16 if(c->weight < min->weight) | 18 if(c->weight < min->weight) |
17 min = c; | 19 min = c; |
18 return min; | 20 return min; |
19 } | |
20 | |
21 static void | |
22 pop(Client *c) | |
23 { | |
24 detach(c); | |
25 if(clients) | |
26 clients->prev = c; | |
27 c->next = clients; | |
28 clients = c; | |
29 } | 21 } |
30 | 22 |
31 static void | 23 static void |
32 reorder() | 24 reorder() |
33 { | 25 { |
230 if(!sel) { | 222 if(!sel) { |
231 drawstatus(); | 223 drawstatus(); |
232 return; | 224 return; |
233 } | 225 } |
234 if(sel->isfloat || arrange == dofloat) { | 226 if(sel->isfloat || arrange == dofloat) { |
235 pop(sel); | |
236 XRaiseWindow(dpy, sel->win); | 227 XRaiseWindow(dpy, sel->win); |
237 XRaiseWindow(dpy, sel->twin); | 228 XRaiseWindow(dpy, sel->twin); |
238 } | 229 } |
239 if(arrange != dofloat) | 230 if(arrange != dofloat) |
240 for(c = nexttiled(clients); c; c = nexttiled(c->next)) { | 231 for(c = nexttiled(clients); c; c = nexttiled(c->next)) { |
305 return; | 296 return; |
306 | 297 |
307 if((c = sel) == nexttiled(clients)) | 298 if((c = sel) == nexttiled(clients)) |
308 if(!(c = nexttiled(c->next))) | 299 if(!(c = nexttiled(c->next))) |
309 return; | 300 return; |
310 pop(c); | 301 detach(c); |
302 if(clients) | |
303 clients->prev = c; | |
304 c->next = clients; | |
305 clients = c; | |
311 focus(c); | 306 focus(c); |
312 arrange(NULL); | 307 arrange(NULL); |
313 } | 308 } |