# HG changeset patch # User Anselm R. Garbe # Date 1156867502 -7200 # Node ID 58288246d16cc91729b3b372b8020bba665df6a2 # Parent 37706ba7d492fa2e587a2d569d0a035c1f4aee2f now dwm enforces max screen size also in tiled mode on non-floating clients which are maximized diff -r 37706ba7d492 -r 58288246d16c event.c --- a/event.c Tue Aug 29 17:33:27 2006 +0200 +++ b/event.c Tue Aug 29 18:05:02 2006 +0200 @@ -150,7 +150,6 @@ static void configurerequest(XEvent *e) { - int ox, oy, ow, oh; unsigned long newmask; Client *c; XConfigureRequestEvent *ev = &e->xconfigurerequest; @@ -158,10 +157,20 @@ XWindowChanges wc; if((c = getclient(ev->window))) { - ox = c->x; - oy = c->y; - ow = c->w; - oh = c->h; + if(!c->isfloat && (arrange != dofloat) && c->ismax) { + synev.type = ConfigureNotify; + synev.xconfigure.display = dpy; + synev.xconfigure.event = c->win; + synev.xconfigure.window = c->win; + synev.xconfigure.x = sx; + synev.xconfigure.y = sy + bh; + synev.xconfigure.width = sw - 2; + synev.xconfigure.height = sw - 2 - bh; + synev.xconfigure.border_width = ev->border_width; + synev.xconfigure.above = None; + XSendEvent(dpy, c->win, True, NoEventMask, &synev); + return; + } gravitate(c, True); if(ev->value_mask & CWX) c->x = ev->x; @@ -192,19 +201,11 @@ synev.xconfigure.height = c->h; synev.xconfigure.border_width = c->border; synev.xconfigure.above = None; - /* Send synthetic ConfigureNotify */ XSendEvent(dpy, c->win, True, NoEventMask, &synev); } XSync(dpy, False); if(c->isfloat) resize(c, False, TopLeft); - else if(c->ismax) { - resize(c, False, TopLeft); - c->x = ox; - c->y = oy; - c->w = ow; - c->h = oh; - } else arrange(NULL); }