117 else { |
116 else { |
118 stackw = sw - master; |
117 stackw = sw - master; |
119 stackh = sh - bh; |
118 stackh = sh - bh; |
120 } |
119 } |
121 |
120 |
122 if(isvertical) { |
121 tw = stackw; |
123 tw = stackw; |
122 if(n > 1) |
124 if(n > 1) |
123 th = stackh / (n - 1); |
125 th = stackh / (n - 1); |
124 else |
126 else |
|
127 th = stackh; |
|
128 } |
|
129 else { |
|
130 th = stackh; |
125 th = stackh; |
131 if(n > 1) |
|
132 tw = stackw / (n - 1); |
|
133 else |
|
134 tw = stackw; |
|
135 } |
|
136 |
126 |
137 for(i = 0, c = clients; c; c = c->next) { |
127 for(i = 0, c = clients; c; c = c->next) { |
138 if(isvisible(c)) { |
128 if(isvisible(c)) { |
139 if(c->isfloat) { |
129 if(c->isfloat) { |
140 resize(c, True, TopLeft); |
130 resize(c, True, TopLeft); |
167 c->w = master - 2 * BORDERPX; |
157 c->w = master - 2 * BORDERPX; |
168 c->h = sh - bh - 2 * BORDERPX; |
158 c->h = sh - bh - 2 * BORDERPX; |
169 break; |
159 break; |
170 } |
160 } |
171 } |
161 } |
172 else if((isvertical && th > bh) || (!isvertical && tw > MINW)) { |
162 else if(th > bh) { |
173 /* tile window */ |
163 /* tile window */ |
174 c->w = tw - 2 * BORDERPX; |
164 c->w = tw - 2 * BORDERPX; |
175 c->h = th - 2 * BORDERPX; |
165 c->h = th - 2 * BORDERPX; |
176 switch(stackpos) { |
166 switch(stackpos) { |
177 case StackLeft: |
167 case StackLeft: |
178 if(isvertical) { |
168 c->x = sx; |
179 c->x = sx; |
169 c->y = sy + (i - 1) * th + bh; |
180 c->y = sy + (i - 1) * th + bh; |
170 if(i + 1 == n) |
181 if(i + 1 == n) |
171 c->h = sh - c->y - 2 * BORDERPX; |
182 c->h = sh - c->y - 2 * BORDERPX; |
|
183 } |
|
184 else { |
|
185 c->x = sx + (i - 1) * tw; |
|
186 c->y = sy + bh; |
|
187 if(i + 1 == n) |
|
188 c->w = sx + stackw - c->x - 2 * BORDERPX; |
|
189 } |
|
190 break; |
172 break; |
191 case StackBottom: |
173 case StackBottom: |
192 if(isvertical) { |
174 c->x = sx; |
193 c->x = sx; |
175 c->y = sy + master + (i - 1) * th + bh; |
194 c->y = sy + master + (i - 1) * th + bh; |
176 if(i + 1 == n) |
195 if(i + 1 == n) |
177 c->h = sh - c->y - 2 * BORDERPX; |
196 c->h = sh - c->y - 2 * BORDERPX; |
|
197 } |
|
198 else { |
|
199 c->x = sx + (i - 1) * tw; |
|
200 c->y = sy + bh + master; |
|
201 if(i + 1 == n) |
|
202 c->w = sw - c->x - 2 * BORDERPX; |
|
203 } |
|
204 break; |
178 break; |
205 case StackRight: |
179 case StackRight: |
206 if(isvertical) { |
180 c->x = sx + master; |
207 c->x = sx + master; |
181 c->y = sy + (i - 1) * th + bh; |
208 c->y = sy + (i - 1) * th + bh; |
182 if(i + 1 == n) |
209 if(i + 1 == n) |
183 c->h = sh - c->y - 2 * BORDERPX; |
210 c->h = sh - c->y - 2 * BORDERPX; |
|
211 } |
|
212 else { |
|
213 c->x = sx + master + (i - 1) * tw; |
|
214 c->y = sy + bh; |
|
215 if(i + 1 == n) |
|
216 c->w = sw - c->x - 2 * BORDERPX; |
|
217 } |
|
218 break; |
184 break; |
219 } |
185 } |
220 } |
186 } |
221 else { /* fallback if th < bh resp. tw < MINW */ |
187 else { /* fallback if th < bh */ |
222 c->w = stackw - 2 * BORDERPX; |
188 c->w = stackw - 2 * BORDERPX; |
223 c->h = stackh - 2 * BORDERPX; |
189 c->h = stackh - 2 * BORDERPX; |
224 switch(stackpos) { |
190 switch(stackpos) { |
225 case StackLeft: |
191 case StackLeft: |
226 c->x = sx; |
192 c->x = sx; |
354 seltag[arg->i] = !seltag[arg->i]; |
320 seltag[arg->i] = !seltag[arg->i]; |
355 for(i = 0; i < ntags && !seltag[i]; i++); |
321 for(i = 0; i < ntags && !seltag[i]; i++); |
356 if(i == ntags) |
322 if(i == ntags) |
357 seltag[arg->i] = True; /* cannot toggle last view */ |
323 seltag[arg->i] = True; /* cannot toggle last view */ |
358 reorder(); |
324 reorder(); |
359 arrange(NULL); |
|
360 } |
|
361 |
|
362 void |
|
363 togglestackdir(Arg *arg) { |
|
364 if(arrange == dofloat) |
|
365 return; |
|
366 isvertical = !isvertical; |
|
367 arrange(NULL); |
325 arrange(NULL); |
368 } |
326 } |
369 |
327 |
370 void |
328 void |
371 togglestackpos(Arg *arg) { |
329 togglestackpos(Arg *arg) { |