47 |
47 |
48 if(c->isfixed) |
48 if(c->isfixed) |
49 return; |
49 return; |
50 |
50 |
51 if((c->ismax = !c->ismax)) { |
51 if((c->ismax = !c->ismax)) { |
52 c->rx = c->x; c->x = sx; |
52 c->rx = c->x; c->x = wax; |
53 c->ry = c->y; c->y = bh; |
53 c->ry = c->y; c->y = way; |
54 c->rw = c->w; c->w = sw - 2 * BORDERPX; |
54 c->rw = c->w; c->w = waw - 2 * BORDERPX; |
55 c->rh = c->h; c->h = sh - bh - 2 * BORDERPX; |
55 c->rh = c->h; c->h = wah - 2 * BORDERPX; |
56 } |
56 } |
57 else { |
57 else { |
58 c->x = c->rx; |
58 c->x = c->rx; |
59 c->y = c->ry; |
59 c->y = c->ry; |
60 c->w = c->rw; |
60 c->w = c->rw; |
97 restack(); |
97 restack(); |
98 } |
98 } |
99 |
99 |
100 void |
100 void |
101 dotile(void) { |
101 dotile(void) { |
102 unsigned int i, n, mpx, stackw, stackh, th; |
102 unsigned int i, n, mpx, stackw, th; |
103 Client *c; |
103 Client *c; |
104 |
104 |
105 for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next)) |
105 for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next)) |
106 n++; |
106 n++; |
107 mpx = (sw * master) / 1000; |
107 mpx = (waw * master) / 1000; |
108 stackw = sw - mpx; |
108 stackw = waw - mpx; |
109 stackh = sh - bh; |
|
110 th = stackh; |
|
111 if(n > 1) |
|
112 th /= (n - 1); |
|
113 |
109 |
114 for(i = 0, c = clients; c; c = c->next) |
110 for(i = 0, c = clients; c; c = c->next) |
115 if(isvisible(c)) { |
111 if(isvisible(c)) { |
116 if(c->isfloat) { |
112 if(c->isfloat) { |
117 resize(c, True, TopLeft); |
113 resize(c, True, TopLeft); |
118 continue; |
114 continue; |
119 } |
115 } |
120 c->ismax = False; |
116 c->ismax = False; |
121 c->x = sx; |
117 c->x = wax; |
122 c->y = sy + bh; |
118 c->y = way; |
123 if(n == 1) { /* only 1 window */ |
119 if(n == 1) { /* only 1 window */ |
124 c->w = sw - 2 * BORDERPX; |
120 c->w = waw - 2 * BORDERPX; |
125 c->h = sh - 2 * BORDERPX - bh; |
121 c->h = wah - 2 * BORDERPX; |
126 } |
122 } |
127 else if(i == 0) { /* master window */ |
123 else if(i == 0) { /* master window */ |
128 c->w = mpx - 2 * BORDERPX; |
124 c->w = waw - stackw - 2 * BORDERPX; |
129 c->h = sh - bh - 2 * BORDERPX; |
125 c->h = wah - 2 * BORDERPX; |
|
126 th = wah / (n - 1); |
130 } |
127 } |
131 else { /* tile window */ |
128 else { /* tile window */ |
132 c->x += mpx; |
129 c->x += mpx; |
133 c->w = stackw - 2 * BORDERPX; |
130 c->w = stackw - 2 * BORDERPX; |
134 if(th > bh) { |
131 if(th > bh) { |
135 c->y = sy + (i - 1) * th + bh; |
132 c->y = way + (i - 1) * th; |
136 if(i + 1 == n) |
133 c->h = th - 2 * BORDERPX; |
137 c->h = sh - c->y - 2 * BORDERPX; |
|
138 else |
|
139 c->h = th - 2 * BORDERPX; |
|
140 } |
134 } |
141 else /* fallback if th < bh */ |
135 else /* fallback if th < bh */ |
142 c->h = stackh - 2 * BORDERPX; |
136 c->h = wah - 2 * BORDERPX; |
143 } |
137 } |
144 resize(c, False, TopLeft); |
138 resize(c, False, TopLeft); |
145 i++; |
139 i++; |
146 } |
140 } |
147 else |
141 else |