X-Git-Url: https://jasonwoof.com/gitweb/?p=dwm.git;a=blobdiff_plain;f=event.c;h=16201f33a9493f8512f91508caed44869a9855af;hp=0fa1081c9dfc9084be1e360c8294d3f887c13561;hb=2091200c957783deed032380d56c4199a23c6b81;hpb=aa53e39ec0eb39949c5c03d56da08204d14d9ff9 diff --git a/event.c b/event.c index 0fa1081..16201f3 100644 --- a/event.c +++ b/event.c @@ -1,9 +1,9 @@ /* See LICENSE file for copyright and license details. */ #include "dwm.h" -#include #include #include #include +#include /* static */ @@ -14,8 +14,6 @@ typedef struct { const char *arg; } Key; -KEYS - #define CLEANMASK(mask) (mask & ~(numlockmask | LockMask)) #define MOUSEMASK (BUTTONMASK | PointerMotionMask) @@ -111,29 +109,26 @@ resizemouse(Client *c) { static void buttonpress(XEvent *e) { - static char buf[32]; unsigned int i, x; Client *c; XButtonPressedEvent *ev = &e->xbutton; - buf[0] = 0; if(barwin == ev->window) { x = 0; for(i = 0; i < ntags; i++) { x += textw(tags[i]); if(ev->x < x) { - snprintf(buf, sizeof buf, "%d", i); if(ev->button == Button1) { if(ev->state & MODKEY) - tag(buf); + tag(tags[i]); else - view(buf); + view(tags[i]); } else if(ev->button == Button3) { if(ev->state & MODKEY) - toggletag(buf); + toggletag(tags[i]); else - toggleview(buf); + toggleview(tags[i]); } return; } @@ -145,14 +140,14 @@ buttonpress(XEvent *e) { focus(c); if(CLEANMASK(ev->state) != MODKEY) return; - if(ev->button == Button1 && (lt->arrange == floating || c->isfloating)) { + if(ev->button == Button1 && (isfloating() || c->isfloating)) { restack(); movemouse(c); } else if(ev->button == Button2) zoom(NULL); else if(ev->button == Button3 - && (lt->arrange == floating || c->isfloating) && !c->isfixed) + && (isfloating() || c->isfloating) && !c->isfixed) { restack(); resizemouse(c); @@ -170,7 +165,7 @@ configurerequest(XEvent *e) { c->ismax = False; if(ev->value_mask & CWBorderWidth) c->border = ev->border_width; - if(c->isfixed || c->isfloating || (lt->arrange == floating)) { + if(c->isfixed || c->isfloating || isfloating()) { if(ev->value_mask & CWX) c->x = ev->x; if(ev->value_mask & CWY) @@ -216,7 +211,7 @@ configurenotify(XEvent *e) { dc.drawable = XCreatePixmap(dpy, root, sw, bh, DefaultDepth(dpy, screen)); XResizeWindow(dpy, barwin, sw, bh); updatebarpos(); - lt->arrange(NULL); + arrange(); } } @@ -250,24 +245,25 @@ expose(XEvent *e) { if(ev->count == 0) { if(barwin == ev->window) - drawstatus(); + drawbar(); } } static void keypress(XEvent *e) { - static unsigned int len = sizeof key / sizeof key[0]; + KEYS + unsigned int len = sizeof keys / sizeof keys[0]; unsigned int i; KeySym keysym; XKeyEvent *ev = &e->xkey; keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0); for(i = 0; i < len; i++) - if(keysym == key[i].keysym - && CLEANMASK(key[i].mod) == CLEANMASK(ev->state)) + if(keysym == keys[i].keysym + && CLEANMASK(keys[i].mod) == CLEANMASK(ev->state)) { - if(key[i].func) - key[i].func(key[i].arg); + if(keys[i].func) + keys[i].func(keys[i].arg); } } @@ -317,7 +313,7 @@ propertynotify(XEvent *e) { case XA_WM_TRANSIENT_FOR: XGetTransientForHint(dpy, c->win, &trans); if(!c->isfloating && (c->isfloating = (getclient(trans) != NULL))) - lt->arrange(NULL); + arrange(); break; case XA_WM_NORMAL_HINTS: updatesizehints(c); @@ -326,7 +322,7 @@ propertynotify(XEvent *e) { if(ev->atom == XA_WM_NAME || ev->atom == netatom[NetWMName]) { updatetitle(c); if(c == sel) - drawstatus(); + drawbar(); } } } @@ -336,10 +332,8 @@ unmapnotify(XEvent *e) { Client *c; XUnmapEvent *ev = &e->xunmap; - if((c = getclient(ev->window)) && (ev->event == root)) { - if(ev->send_event || c->unmapped-- == 0) - unmanage(c); - } + if((c = getclient(ev->window))) + unmanage(c); } /* extern */ @@ -361,20 +355,21 @@ void (*handler[LASTEvent]) (XEvent *) = { void grabkeys(void) { - static unsigned int len = sizeof key / sizeof key[0]; + KEYS + unsigned int len = sizeof keys / sizeof keys[0]; unsigned int i; KeyCode code; XUngrabKey(dpy, AnyKey, AnyModifier, root); for(i = 0; i < len; i++) { - code = XKeysymToKeycode(dpy, key[i].keysym); - XGrabKey(dpy, code, key[i].mod, root, True, + code = XKeysymToKeycode(dpy, keys[i].keysym); + XGrabKey(dpy, code, keys[i].mod, root, True, GrabModeAsync, GrabModeAsync); - XGrabKey(dpy, code, key[i].mod | LockMask, root, True, + XGrabKey(dpy, code, keys[i].mod | LockMask, root, True, GrabModeAsync, GrabModeAsync); - XGrabKey(dpy, code, key[i].mod | numlockmask, root, True, + XGrabKey(dpy, code, keys[i].mod | numlockmask, root, True, GrabModeAsync, GrabModeAsync); - XGrabKey(dpy, code, key[i].mod | numlockmask | LockMask, root, True, + XGrabKey(dpy, code, keys[i].mod | numlockmask | LockMask, root, True, GrabModeAsync, GrabModeAsync); } }