X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=main.c;h=6f8914cec63d3f8b6c65f3414ba182d60985e1e7;hb=6bc4556ebd7f48f52f9a446e53d1705d8fd79b27;hp=77ce0df293ce85085f179d09143e19d20a6a414d;hpb=f8415019d4edc1cd4f310adb256e6656e85bfe75;p=dwm.git diff --git a/main.c b/main.c index 77ce0df..6f8914c 100644 --- a/main.c +++ b/main.c @@ -18,8 +18,8 @@ /* extern */ char stext[256]; -int bh, bmw, screen, sx, sy, sw, sh, wax, way, waw, wah; -unsigned int ntags, numlockmask; +int screen, sx, sy, sw, sh, wax, way, waw, wah; +unsigned int bh, ntags, numlockmask; Atom wmatom[WMLast], netatom[NetLast]; Bool running = True; Bool *seltag; @@ -246,7 +246,7 @@ setup(void) { wa.cursor = cursor[CurNormal]; XChangeWindowAttributes(dpy, root, CWEventMask | CWCursor, &wa); grabkeys(); - compileregexps(); + compileregs(); for(ntags = 0; tags[ntags]; ntags++); seltag = emallocz(sizeof(Bool) * ntags); seltag[0] = True; @@ -262,7 +262,7 @@ setup(void) { sx = sy = 0; sw = DisplayWidth(dpy, screen); sh = DisplayHeight(dpy, screen); - bmw = textw(TILESYMBOL) > textw(FLOATSYMBOL) ? textw(TILESYMBOL) : textw(FLOATSYMBOL); + initlayouts(); /* bar */ dc.h = bh = dc.font.height + 2; wa.override_redirect = 1; @@ -312,8 +312,8 @@ drawstatus(void) { drawtext(tags[i], dc.norm, sel && sel->tags[i], isoccupied(i)); dc.x += dc.w; } - dc.w = bmw; - drawtext(arrange == dofloat ? FLOATSYMBOL : TILESYMBOL, dc.norm, False, False); + dc.w = blw; + drawtext(lt->symbol, dc.norm, False, False); x = dc.x + dc.w; dc.w = textw(stext); dc.x = sw - dc.w; @@ -379,16 +379,14 @@ main(int argc, char *argv[]) { char *p; int r, xfd; fd_set rd; + XEvent ev; - if(argc == 2 && !strncmp("-v", argv[1], 3)) { - fputs("dwm-"VERSION", (C)opyright MMVI-MMVII Anselm R. Garbe\n", stdout); - exit(EXIT_SUCCESS); - } + if(argc == 2 && !strncmp("-v", argv[1], 3)) + eprint("dwm-"VERSION", (C)opyright MMVI-MMVII Anselm R. Garbe\n"); else if(argc != 1) eprint("usage: dwm [-v]\n"); setlocale(LC_CTYPE, ""); - dpy = XOpenDisplay(0); - if(!dpy) + if(!(dpy = XOpenDisplay(0))) eprint("dwm: cannot open display\n"); xfd = ConnectionNumber(dpy); screen = DefaultScreen(dpy); @@ -411,7 +409,6 @@ main(int argc, char *argv[]) { /* main event loop, also reads status text from stdin */ XSync(dpy, False); - procevent(); readin = True; while(running) { FD_ZERO(&rd); @@ -443,7 +440,11 @@ main(int argc, char *argv[]) { drawstatus(); } if(FD_ISSET(xfd, &rd)) - procevent(); + while(XPending(dpy)) { + XNextEvent(dpy, &ev); + if(handler[ev.type]) + (handler[ev.type])(&ev); /* call handler */ + } } cleanup(); XCloseDisplay(dpy);