comparison view.c @ 480:680aca428830

small change to achieve Jukka's last proposal
author arg@mmvi
date Fri, 22 Sep 2006 13:53:28 +0200
parents de69a7b0c8fa
children 382e3cb5d9a5
comparison
equal deleted inserted replaced
479:de69a7b0c8fa 480:680aca428830
14 return clients; /* don't touch floating order */ 14 return clients; /* don't touch floating order */
15 for(min = c = clients; c; c = c->next) 15 for(min = c = clients; c; c = c->next)
16 if(c->weight < min->weight) 16 if(c->weight < min->weight)
17 min = c; 17 min = c;
18 return min; 18 return min;
19 }
20
21 static Client *
22 nexttiled(Client *c) {
23 for(c = getnext(c); c && c->isfloat; c = getnext(c->next));
24 return c;
19 } 25 }
20 26
21 static void 27 static void
22 reorder() { 28 reorder() {
23 Client *c, *newclients, *tail; 29 Client *c, *newclients, *tail;
34 tail = newclients = c; 40 tail = newclients = c;
35 } 41 }
36 clients = newclients; 42 clients = newclients;
37 } 43 }
38 44
39 static Client * 45 static void
40 nexttiled(Client *c) { 46 togglemax(Client *c)
41 for(c = getnext(c); c && c->isfloat; c = getnext(c->next)); 47 {
42 return c; 48 if((c->ismax = !c->ismax)) {
49 c->rx = c->x; c->x = sx;
50 c->ry = c->y; c->y = bh;
51 c->rw = c->w; c->w = sw;
52 c->rh = c->h; c->h = sh;
53 }
54 else {
55 c->x = c->rx;
56 c->y = c->ry;
57 c->w = c->w;
58 c->h = c->h;
59 }
60 resize(c, True, TopLeft);
61 while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
43 } 62 }
44 63
45 /* extern */ 64 /* extern */
46 65
47 void (*arrange)(Arg *) = DEFMODE; 66 void (*arrange)(Arg *) = DEFMODE;
80 int h, i, n, w; 99 int h, i, n, w;
81 Client *c; 100 Client *c;
82 101
83 w = sw - mw; 102 w = sw - mw;
84 for(n = 0, c = clients; c; c = c->next) 103 for(n = 0, c = clients; c; c = c->next)
85 if(isvisible(c) && !c->isfloat) 104 if(isvisible(c)) {
86 n++; 105 if(c->isfloat) {
106 if(c->ismax)
107 togglemax(c);
108 }
109 else
110 n++;
111 }
87 112
88 if(n > 1) 113 if(n > 1)
89 h = (sh - bh) / (n - 1); 114 h = (sh - bh) / (n - 1);
90 else 115 else
91 h = sh - bh; 116 h = sh - bh;
267 arrange(NULL); 292 arrange(NULL);
268 } 293 }
269 294
270 void 295 void
271 zoom(Arg *arg) { 296 zoom(Arg *arg) {
272 int tmp;
273 unsigned int n; 297 unsigned int n;
274 Client *c; 298 Client *c;
275 XEvent ev; 299 XEvent ev;
276 300
277 if(!sel) 301 if(!sel)
278 return; 302 return;
279 303
280 if(sel->isfloat || (arrange == dofloat)) { 304 if(sel->isfloat || (arrange == dofloat)) {
281 sel->x = sx; 305 togglemax(sel);
282 sel->y = bh;
283 sel->w = sw;
284 sel->h = sh - bh;
285 resize(sel, True, TopLeft);
286 while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
287 return; 306 return;
288 } 307 }
289 308
290 for(n = 0, c = clients; c; c = c->next) 309 for(n = 0, c = clients; c; c = c->next)
291 if(isvisible(c) && !c->isfloat) 310 if(isvisible(c) && !c->isfloat)