X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=event.c;h=a1d2d9cee11017834ccf1d6e6e2205e1c6d9a869;hb=6828fba7a002062dd383f83bb8d584a82fc7677a;hp=c8a87c1256bee55e18c5d0a3cb917618d10d0fee;hpb=ee31e38dc75832a66cb0fc01bcf2f419ac96a20b;p=dwm.git diff --git a/event.c b/event.c index c8a87c1..a1d2d9c 100644 --- a/event.c +++ b/event.c @@ -116,9 +116,15 @@ buttonpress(XEvent *e) return; } } + if(ev->x < x + bmw) { + if(ev->button == Button1) + togglemode(NULL); + } } else if((c = getclient(ev->window))) { focus(c); + if(CLEANMASK(ev->state) != MODKEY) + return; switch(ev->button) { default: break; @@ -144,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; @@ -151,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; @@ -187,6 +198,13 @@ configurerequest(XEvent *e) 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); } @@ -384,3 +402,16 @@ grabkeys() GrabModeAsync, GrabModeAsync); } } + +void +procevent() +{ + XEvent ev; + + while(XPending(dpy)) { + XNextEvent(dpy, &ev); + if(handler[ev.type]) + (handler[ev.type])(&ev); /* call handler */ + } +} +