comparison tag.c @ 95:5d88952cbf96

implemened distinguishing float/managed geometries of clients (works quite well)
author Anselm R. Garbe <garbeam@wmii.de>
date Tue, 18 Jul 2006 12:36:57 +0200
parents 6efe82c775c9
children 1d125cf2925b
comparison
equal deleted inserted replaced
94:6efe82c775c9 95:5d88952cbf96
41 { 41 {
42 Client *c; 42 Client *c;
43 43
44 arrange = dofloat; 44 arrange = dofloat;
45 for(c = clients; c; c = c->next) { 45 for(c = clients; c; c = c->next) {
46 if(c->tags[tsel]) 46 setgeom(c);
47 if(c->tags[tsel]) {
47 resize(c, True); 48 resize(c, True);
49 }
48 else 50 else
49 ban(c); 51 ban(c);
50 } 52 }
51 if(sel && !sel->tags[tsel]) { 53 if(sel && !sel->tags[tsel]) {
52 if((sel = getnext(clients, tsel))) { 54 if((sel = getnext(clients, tsel))) {
73 h = (sh - bh) / (n - 1); 75 h = (sh - bh) / (n - 1);
74 else 76 else
75 h = sh - bh; 77 h = sh - bh;
76 78
77 for(i = 0, c = clients; c; c = c->next) { 79 for(i = 0, c = clients; c; c = c->next) {
80 setgeom(c);
78 if(c->tags[tsel]) { 81 if(c->tags[tsel]) {
79 if(c->isfloat) { 82 if(c->isfloat) {
80 higher(c); 83 higher(c);
81 resize(c, True); 84 resize(c, True);
82 continue; 85 continue;
83 } 86 }
84 if(n == 1) { 87 if(n == 1) {
85 c->x = sx; 88 *c->x = sx;
86 c->y = sy + bh; 89 *c->y = sy + bh;
87 c->w = sw - 2 * c->border; 90 *c->w = sw - 2 * c->border;
88 c->h = sh - 2 * c->border - bh; 91 *c->h = sh - 2 * c->border - bh;
89 } 92 }
90 else if(i == 0) { 93 else if(i == 0) {
91 c->x = sx; 94 *c->x = sx;
92 c->y = sy + bh; 95 *c->y = sy + bh;
93 c->w = mw - 2 * c->border; 96 *c->w = mw - 2 * c->border;
94 c->h = sh - 2 * c->border - bh; 97 *c->h = sh - 2 * c->border - bh;
95 } 98 }
96 else { 99 else {
97 c->x = sx + mw; 100 *c->x = sx + mw;
98 c->y = sy + (i - 1) * h + bh; 101 *c->y = sy + (i - 1) * h + bh;
99 c->w = w - 2 * c->border; 102 *c->w = w - 2 * c->border;
100 c->h = h - 2 * c->border; 103 *c->h = h - 2 * c->border;
101 } 104 }
102 resize(c, False); 105 resize(c, False);
103 i++; 106 i++;
104 } 107 }
105 else 108 else