comparison view.c @ 530:451f19d48845

removed the stack position stuff
author Anselm R. Garbe <arg@10kloc.org>
date Thu, 05 Oct 2006 19:27:28 +0200
parents e2bd83191fc6
children 96563762b4ad
comparison
equal deleted inserted replaced
529:e2bd83191fc6 530:451f19d48845
63 } 63 }
64 64
65 /* extern */ 65 /* extern */
66 66
67 void (*arrange)(Arg *) = DEFMODE; 67 void (*arrange)(Arg *) = DEFMODE;
68 StackPos stackpos = STACKPOS;
69 68
70 void 69 void
71 detach(Client *c) { 70 detach(Client *c) {
72 if(c->prev) 71 if(c->prev)
73 c->prev->next = c->next; 72 c->prev->next = c->next;
101 * SSMMM MMMMM MMMSS 100 * SSMMM MMMMM MMMSS
102 * SSMMM SSSSS MMMSS 101 * SSMMM SSSSS MMMSS
103 */ 102 */
104 void 103 void
105 dotile(Arg *arg) { 104 dotile(Arg *arg) {
106 unsigned int i, n, md, stackw, stackh, tw, th; 105 unsigned int i, n, md, stackw, stackh, th;
107 Client *c; 106 Client *c;
108 107
109 for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next)) 108 for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next))
110 n++; 109 n++;
111 110
112 if(stackpos == StackBottom) { 111 md = (sw * master) / 1000;
113 md = ((sh - bh) * master) / 1000; 112 stackw = sw - md;
114 stackw = sw; 113 stackh = sh - bh;
115 stackh = sh - bh - md; 114
116 } 115 th = stackh;
117 else {
118 md = (sw * master) / 1000;
119 stackw = sw - md;
120 stackh = sh - bh;
121 }
122
123 tw = stackw;
124 if(n > 1) 116 if(n > 1)
125 th = stackh / (n - 1); 117 th /= (n - 1);
126 else
127 th = stackh;
128 118
129 for(i = 0, c = clients; c; c = c->next) { 119 for(i = 0, c = clients; c; c = c->next) {
130 if(isvisible(c)) { 120 if(isvisible(c)) {
131 if(c->isfloat) { 121 if(c->isfloat) {
132 resize(c, True, TopLeft); 122 resize(c, True, TopLeft);
138 if(n == 1) { /* only 1 window */ 128 if(n == 1) { /* only 1 window */
139 c->w = sw - 2 * BORDERPX; 129 c->w = sw - 2 * BORDERPX;
140 c->h = sh - 2 * BORDERPX - bh; 130 c->h = sh - 2 * BORDERPX - bh;
141 } 131 }
142 else if(i == 0) { /* master window */ 132 else if(i == 0) { /* master window */
143 if(stackpos == StackLeft) 133 c->w = md - 2 * BORDERPX;
144 c->x += stackw; 134 c->h = sh - bh - 2 * BORDERPX;
145 switch(stackpos) {
146 case StackLeft:
147 case StackRight:
148 c->w = md - 2 * BORDERPX;
149 c->h = sh - bh - 2 * BORDERPX;
150 break;
151 case StackBottom:
152 c->w = sw - 2 * BORDERPX;
153 c->h = md - 2 * BORDERPX;
154 break;
155 }
156 } 135 }
157 else { /* tile window */ 136 else { /* tile window */
158 if(stackpos == StackRight) 137 c->x += md;
159 c->x += md;
160 if(th > bh) { 138 if(th > bh) {
161 switch(stackpos) { 139 c->y = sy + (i - 1) * th + bh;
162 case StackLeft: 140 if(i + 1 == n)
163 case StackRight: 141 c->h = sh - c->y - 2 * BORDERPX;
164 c->y = sy + (i - 1) * th + bh; 142 c->w = stackw - 2 * BORDERPX;
165 if(i + 1 == n)
166 c->h = sh - c->y - 2 * BORDERPX;
167 break;
168 case StackBottom:
169 c->y = sy + md + (i - 1) * th + bh;
170 if(i + 1 == n)
171 c->h = sh - c->y - 2 * BORDERPX;
172 break;
173 }
174 c->w = tw - 2 * BORDERPX;
175 c->h = th - 2 * BORDERPX; 143 c->h = th - 2 * BORDERPX;
176 } 144 }
177 else { /* fallback if th < bh */ 145 else { /* fallback if th < bh */
178 if(stackpos == StackBottom)
179 c->y += md;
180 c->w = stackw - 2 * BORDERPX; 146 c->w = stackw - 2 * BORDERPX;
181 c->h = stackh - 2 * BORDERPX; 147 c->h = stackh - 2 * BORDERPX;
182 } 148 }
183 } 149 }
184 resize(c, False, TopLeft); 150 resize(c, False, TopLeft);
306 seltag[arg->i] = !seltag[arg->i]; 272 seltag[arg->i] = !seltag[arg->i];
307 for(i = 0; i < ntags && !seltag[i]; i++); 273 for(i = 0; i < ntags && !seltag[i]; i++);
308 if(i == ntags) 274 if(i == ntags)
309 seltag[arg->i] = True; /* cannot toggle last view */ 275 seltag[arg->i] = True; /* cannot toggle last view */
310 reorder(); 276 reorder();
311 arrange(NULL);
312 }
313
314 void
315 togglestackpos(Arg *arg) {
316 if(arrange == dofloat)
317 return;
318 if(stackpos == StackBottom)
319 stackpos = STACKPOS;
320 else
321 stackpos = StackBottom;
322 arrange(NULL); 277 arrange(NULL);
323 } 278 }
324 279
325 void 280 void
326 view(Arg *arg) { 281 view(Arg *arg) {