X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=event.c;h=35cd4f9e1958208fd20c9ef3d9448061efe603c8;hb=d37dfa1bedbfadb5d39aa1937e77d4fd44319018;hp=c8a87c1256bee55e18c5d0a3cb917618d10d0fee;hpb=ee31e38dc75832a66cb0fc01bcf2f419ac96a20b;p=dwm.git diff --git a/event.c b/event.c index c8a87c1..35cd4f9 100644 --- a/event.c +++ b/event.c @@ -105,20 +105,26 @@ buttonpress(XEvent *e) XButtonPressedEvent *ev = &e->xbutton; if(barwin == ev->window) { - 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 < 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; + } } } } else if((c = getclient(ev->window))) { focus(c); + if(CLEANMASK(ev->state) == 0) + return; switch(ev->button) { default: break; @@ -384,3 +390,16 @@ grabkeys() GrabModeAsync, GrabModeAsync); } } + +void +procevent() +{ + XEvent ev; + + while(XPending(dpy)) { + XNextEvent(dpy, &ev); + if(handler[ev.type]) + (handler[ev.type])(&ev); /* call handler */ + } +} +