X-Git-Url: https://git.xinqibao.xyz/dwm.git/blobdiff_plain/d37dfa1bedbfadb5d39aa1937e77d4fd44319018..aa1bda81646e9d6188fd584009be0eee619f6966:/event.c diff --git a/event.c b/event.c index 35cd4f9..0f74478 100644 --- a/event.c +++ b/event.c @@ -105,25 +105,25 @@ buttonpress(XEvent *e) XButtonPressedEvent *ev = &e->xbutton; if(barwin == ev->window) { - if(ev->x < modew) - togglemode(NULL); - else { - x = modew; - for(a.i = 0; a.i < ntags; a.i++) { - x += textw(tags[a.i]); - if(ev->x < x) { - if(ev->button == Button1) - view(&a); - else if(ev->button == Button3) - toggleview(&a); - return; - } + x = 0; + for(a.i = 0; a.i < ntags; a.i++) { + x += textw(tags[a.i]); + if(ev->x < x) { + if(ev->button == Button1) + view(&a); + else if(ev->button == Button3) + toggleview(&a); + return; } } + if(ev->x < x + bmw) { + if(ev->button == Button1) + togglemode(NULL); + } } else if((c = getclient(ev->window))) { focus(c); - if(CLEANMASK(ev->state) == 0) + if(CLEANMASK(ev->state) != MODKEY) return; switch(ev->button) { default: @@ -150,6 +150,7 @@ buttonpress(XEvent *e) static void configurerequest(XEvent *e) { + int ox, oy, ow, oh; unsigned long newmask; Client *c; XConfigureRequestEvent *ev = &e->xconfigurerequest; @@ -157,6 +158,10 @@ configurerequest(XEvent *e) XWindowChanges wc; if((c = getclient(ev->window))) { + ox = c->x; + oy = c->y; + ow = c->w; + oh = c->h; gravitate(c, True); if(ev->value_mask & CWX) c->x = ev->x; @@ -191,8 +196,13 @@ configurerequest(XEvent *e) XSendEvent(dpy, c->win, True, NoEventMask, &synev); } XSync(dpy, False); - if(c->isfloat) + if(c->isfloat || c->ismax) { resize(c, False, TopLeft); + c->x = ox; + c->y = oy; + c->w = ow; + c->h = oh; + } else arrange(NULL); }