X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=main.c;h=63f791f71992d0d6426e7a61204ec8d6ceeb110b;hb=f9e7a330190259a54449837a16c2af66fa823d30;hp=73b713f9ba6148adb05ce1ec3e4c242935f364f4;hpb=d180ba418cd56f3a743d9a5863f86f7eae21602f;p=dwm.git diff --git a/main.c b/main.c index 73b713f..63f791f 100644 --- a/main.c +++ b/main.c @@ -1,7 +1,6 @@ -/* (C)opyright MMVI-MMVII Anselm R. Garbe - * See LICENSE file for license details. - */ - +/* © 2006-2007 Anselm R. Garbe + * © 2006-2007 Sander van Dijk + * See LICENSE file for license details. */ #include "dwm.h" #include #include @@ -21,7 +20,6 @@ char stext[256]; 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; Bool selscreen = True; Client *clients = NULL; @@ -36,6 +34,7 @@ Window root, barwin; static int (*xerrorxlib)(Display *, XErrorEvent *); static Bool otherwm, readin; +static Bool running = True; static void cleanup(void) { @@ -82,7 +81,7 @@ initfont(const char *fontstr) { dc.font.set = XCreateFontSet(dpy, fontstr, &missing, &n, &def); if(missing) { while(n--) - fprintf(stderr, "missing fontset: %s\n", missing[n]); + fprintf(stderr, "dwm: missing fontset: %s\n", missing[n]); XFreeStringList(missing); } if(dc.font.set) { @@ -164,9 +163,10 @@ setup(void) { XFreeModifiermap(modmap); /* select for events */ wa.event_mask = SubstructureRedirectMask | SubstructureNotifyMask - | EnterWindowMask | LeaveWindowMask; + | EnterWindowMask | LeaveWindowMask | StructureNotifyMask; wa.cursor = cursor[CurNormal]; XChangeWindowAttributes(dpy, root, CWEventMask | CWCursor, &wa); + XSelectInput(dpy, root, wa.event_mask); grabkeys(); compileregs(); for(ntags = 0; tags[ntags]; ntags++); @@ -205,6 +205,8 @@ setup(void) { dc.drawable = XCreatePixmap(dpy, root, sw, bh, DefaultDepth(dpy, screen)); dc.gc = XCreateGC(dpy, root, 0, 0); XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter); + if(!dc.font.set) + XSetFont(dpy, dc.gc, dc.font.xfont->fid); /* multihead support */ selscreen = XQueryPointer(dpy, root, &w, &w, &i, &i, &i, &i, &mask); } @@ -222,21 +224,7 @@ xerrorstart(Display *dsply, XErrorEvent *ee) { /* extern */ void -sendevent(Window w, Atom a, long value) { - XEvent e; - - e.type = ClientMessage; - e.xclient.window = w; - e.xclient.message_type = a; - e.xclient.format = 32; - e.xclient.data.l[0] = value; - e.xclient.data.l[1] = CurrentTime; - XSendEvent(dpy, w, False, NoEventMask, &e); - XSync(dpy, False); -} - -void -quit(Arg *arg) { +quit(const char *arg) { readin = running = False; } @@ -268,7 +256,7 @@ main(int argc, char *argv[]) { XEvent ev; if(argc == 2 && !strncmp("-v", argv[1], 3)) - eprint("dwm-"VERSION", (C)opyright MMVI-MMVII Anselm R. Garbe\n"); + eprint("dwm-"VERSION", © 2004-2007 Anselm R. Garbe, Sander van Dijk\n"); else if(argc != 1) eprint("usage: dwm [-v]\n"); setlocale(LC_CTYPE, ""); @@ -325,12 +313,11 @@ main(int argc, char *argv[]) { } drawstatus(); } - if(FD_ISSET(xfd, &rd)) - while(XPending(dpy)) { - XNextEvent(dpy, &ev); - if(handler[ev.type]) - (handler[ev.type])(&ev); /* call handler */ - } + while(XPending(dpy)) { + XNextEvent(dpy, &ev); + if(handler[ev.type]) + (handler[ev.type])(&ev); /* call handler */ + } } cleanup(); XCloseDisplay(dpy);