yet another simplification of dotile() 2583a7c0
Anselm R. Garbe · 2006-10-05 12:18 1 file(s) · +25 −30
view.c +25 −30
133 133
				continue;
134 134
			}
135 135
			c->ismax = False;
136 +
			c->x = sx;
137 +
			c->y = sy + bh;
136 138
			if(n == 1) { /* only 1 window */
137 -
				c->x = sx;
138 -
				c->y = sy + bh;
139 139
				c->w = sw - 2 * BORDERPX;
140 140
				c->h = sh - 2 * BORDERPX - bh;
141 141
			}
142 142
			else if(i == 0) { /* master window */
143 -
				c->x = sx;
144 143
				if(stackpos == StackLeft)
145 144
					c->x += stackw;
146 -
				c->y = sy + bh;
147 145
				switch(stackpos) {
148 146
				case StackLeft:
149 147
				case StackRight:
156 154
					break;
157 155
				}
158 156
			}
159 -
			else if(th > bh) { /* tile window */
160 -
				c->x = sx;
157 +
			else {  /* tile window */
161 158
				if(stackpos == StackRight)
162 159
					c->x += master;
163 -
				c->w = tw - 2 * BORDERPX;
164 -
				c->h = th - 2 * BORDERPX;
165 -
				switch(stackpos) {
166 -
				case StackLeft:
167 -
				case StackRight:
168 -
					c->y = sy + (i - 1) * th + bh;
169 -
					if(i + 1 == n)
170 -
						c->h = sh - c->y - 2 * BORDERPX;
171 -
					break;
172 -
				case StackBottom:
173 -
					c->y = sy + master + (i - 1) * th + bh;
174 -
					if(i + 1 == n)
175 -
						c->h = sh - c->y - 2 * BORDERPX;
176 -
					break;
160 +
				if(th > bh) {
161 +
					switch(stackpos) {
162 +
					case StackLeft:
163 +
					case StackRight:
164 +
						c->y = sy + (i - 1) * th + bh;
165 +
						if(i + 1 == n)
166 +
							c->h = sh - c->y - 2 * BORDERPX;
167 +
						break;
168 +
					case StackBottom:
169 +
						c->y = sy + master + (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;
176 +
				}
177 +
				else { /* fallback if th < bh */
178 +
					if(stackpos == StackBottom)
179 +
						c->y += master;
180 +
					c->w = stackw - 2 * BORDERPX;
181 +
					c->h = stackh - 2 * BORDERPX;
177 182
				}
178 -
			}
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;
186 -
				c->w = stackw - 2 * BORDERPX;
187 -
				c->h = stackh - 2 * BORDERPX;
188 183
			}
189 184
			resize(c, False, TopLeft);
190 185
			i++;