136 c->y = sy + bh; |
138 c->y = sy + bh; |
137 c->w = sw - 2 * BORDERPX; |
139 c->w = sw - 2 * BORDERPX; |
138 c->h = sh - 2 * BORDERPX - bh; |
140 c->h = sh - 2 * BORDERPX - bh; |
139 } |
141 } |
140 else if(i == 0) { /* master window */ |
142 else if(i == 0) { /* master window */ |
|
143 c->x = sx; |
|
144 if(stackpos == StackLeft) |
|
145 c->x += stackw; |
|
146 c->y = sy + bh; |
141 switch(stackpos) { |
147 switch(stackpos) { |
142 case StackLeft: |
148 case StackLeft: |
143 c->x = sx + stackw; |
149 case StackRight: |
144 c->y = sy + bh; |
|
145 c->w = master - 2 * BORDERPX; |
150 c->w = master - 2 * BORDERPX; |
146 c->h = sh - bh - 2 * BORDERPX; |
151 c->h = sh - bh - 2 * BORDERPX; |
147 break; |
152 break; |
148 case StackBottom: |
153 case StackBottom: |
149 c->x = sx; |
|
150 c->y = sy + bh; |
|
151 c->w = sw - 2 * BORDERPX; |
154 c->w = sw - 2 * BORDERPX; |
152 c->h = master - 2 * BORDERPX; |
155 c->h = master - 2 * BORDERPX; |
153 break; |
156 break; |
154 case StackRight: |
|
155 c->x = sx; |
|
156 c->y = sy + bh; |
|
157 c->w = master - 2 * BORDERPX; |
|
158 c->h = sh - bh - 2 * BORDERPX; |
|
159 break; |
|
160 } |
157 } |
161 } |
158 } |
162 else if(th > bh) { |
159 else if(th > bh) { /* tile window */ |
163 /* tile window */ |
160 c->x = sx; |
|
161 if(stackpos == StackRight) |
|
162 c->x += master; |
164 c->w = tw - 2 * BORDERPX; |
163 c->w = tw - 2 * BORDERPX; |
165 c->h = th - 2 * BORDERPX; |
164 c->h = th - 2 * BORDERPX; |
166 switch(stackpos) { |
165 switch(stackpos) { |
167 case StackLeft: |
166 case StackLeft: |
168 c->x = sx; |
167 case StackRight: |
169 c->y = sy + (i - 1) * th + bh; |
168 c->y = sy + (i - 1) * th + bh; |
170 if(i + 1 == n) |
169 if(i + 1 == n) |
171 c->h = sh - c->y - 2 * BORDERPX; |
170 c->h = sh - c->y - 2 * BORDERPX; |
172 break; |
171 break; |
173 case StackBottom: |
172 case StackBottom: |
174 c->x = sx; |
|
175 c->y = sy + master + (i - 1) * th + bh; |
173 c->y = sy + master + (i - 1) * th + bh; |
176 if(i + 1 == n) |
174 if(i + 1 == n) |
177 c->h = sh - c->y - 2 * BORDERPX; |
175 c->h = sh - c->y - 2 * BORDERPX; |
178 break; |
176 break; |
179 case StackRight: |
|
180 c->x = sx + master; |
|
181 c->y = sy + (i - 1) * th + bh; |
|
182 if(i + 1 == n) |
|
183 c->h = sh - c->y - 2 * BORDERPX; |
|
184 break; |
|
185 } |
177 } |
186 } |
178 } |
187 else { /* fallback if th < bh */ |
179 else { /* fallback if th < bh */ |
|
180 c->x = sx; |
|
181 if(stackpos == StackRight) |
|
182 c->x += master; |
|
183 c->y = sy + bh; |
|
184 if(stackpos == StackBottom) |
|
185 c->y += master; |
188 c->w = stackw - 2 * BORDERPX; |
186 c->w = stackw - 2 * BORDERPX; |
189 c->h = stackh - 2 * BORDERPX; |
187 c->h = stackh - 2 * BORDERPX; |
190 switch(stackpos) { |
|
191 case StackLeft: |
|
192 c->x = sx; |
|
193 c->y = sy + bh; |
|
194 break; |
|
195 case StackBottom: |
|
196 c->x = sx; |
|
197 c->y = sy + master + bh; |
|
198 break; |
|
199 case StackRight: |
|
200 c->x = sx + master; |
|
201 c->y = sy + bh; |
|
202 break; |
|
203 } |
|
204 } |
188 } |
205 resize(c, False, TopLeft); |
189 resize(c, False, TopLeft); |
206 i++; |
190 i++; |
207 } |
191 } |
208 else |
192 else |
269 if(!sel || sel->isfloat || n < 2 || (arrange == dofloat)) |
253 if(!sel || sel->isfloat || n < 2 || (arrange == dofloat)) |
270 return; |
254 return; |
271 |
255 |
272 s = stackpos == StackBottom ? sh - bh : sw; |
256 s = stackpos == StackBottom ? sh - bh : sw; |
273 if(sel == getnext(clients)) { |
257 if(sel == getnext(clients)) { |
274 if(master + arg->i > s - MINW || master + arg->i < MINW) |
258 if(master + arg->i > s - MINDIM || master + arg->i < MINDIM) |
275 return; |
259 return; |
276 master += arg->i; |
260 master += arg->i; |
277 } |
261 } |
278 else { |
262 else { |
279 if(master - arg->i > s - MINW || master - arg->i < MINW) |
263 if(master - arg->i > s - MINDIM || master - arg->i < MINDIM) |
280 return; |
264 return; |
281 master -= arg->i; |
265 master -= arg->i; |
282 } |
266 } |
283 arrange(NULL); |
267 arrange(NULL); |
284 } |
268 } |