now dwm enforces max screen size also in tiled mode on non-floating clients which are maximized
70a3e622
1 file(s) · +14 −13
| 150 | 150 | static void |
|
| 151 | 151 | configurerequest(XEvent *e) |
|
| 152 | 152 | { |
|
| 153 | - | int ox, oy, ow, oh; |
|
| 154 | 153 | unsigned long newmask; |
|
| 155 | 154 | Client *c; |
|
| 156 | 155 | XConfigureRequestEvent *ev = &e->xconfigurerequest; |
|
| 158 | 157 | XWindowChanges wc; |
|
| 159 | 158 | ||
| 160 | 159 | if((c = getclient(ev->window))) { |
|
| 161 | - | ox = c->x; |
|
| 162 | - | oy = c->y; |
|
| 163 | - | ow = c->w; |
|
| 164 | - | oh = c->h; |
|
| 160 | + | if(!c->isfloat && (arrange != dofloat) && c->ismax) { |
|
| 161 | + | synev.type = ConfigureNotify; |
|
| 162 | + | synev.xconfigure.display = dpy; |
|
| 163 | + | synev.xconfigure.event = c->win; |
|
| 164 | + | synev.xconfigure.window = c->win; |
|
| 165 | + | synev.xconfigure.x = sx; |
|
| 166 | + | synev.xconfigure.y = sy + bh; |
|
| 167 | + | synev.xconfigure.width = sw - 2; |
|
| 168 | + | synev.xconfigure.height = sw - 2 - bh; |
|
| 169 | + | synev.xconfigure.border_width = ev->border_width; |
|
| 170 | + | synev.xconfigure.above = None; |
|
| 171 | + | XSendEvent(dpy, c->win, True, NoEventMask, &synev); |
|
| 172 | + | return; |
|
| 173 | + | } |
|
| 165 | 174 | gravitate(c, True); |
|
| 166 | 175 | if(ev->value_mask & CWX) |
|
| 167 | 176 | c->x = ev->x; |
|
| 192 | 201 | synev.xconfigure.height = c->h; |
|
| 193 | 202 | synev.xconfigure.border_width = c->border; |
|
| 194 | 203 | synev.xconfigure.above = None; |
|
| 195 | - | /* Send synthetic ConfigureNotify */ |
|
| 196 | 204 | XSendEvent(dpy, c->win, True, NoEventMask, &synev); |
|
| 197 | 205 | } |
|
| 198 | 206 | XSync(dpy, False); |
|
| 199 | 207 | if(c->isfloat) |
|
| 200 | 208 | resize(c, False, TopLeft); |
|
| 201 | - | else if(c->ismax) { |
|
| 202 | - | resize(c, False, TopLeft); |
|
| 203 | - | c->x = ox; |
|
| 204 | - | c->y = oy; |
|
| 205 | - | c->w = ow; |
|
| 206 | - | c->h = oh; |
|
| 207 | - | } |
|
| 208 | 209 | else |
|
| 209 | 210 | arrange(NULL); |
|
| 210 | 211 | } |
|