/* X structs */
Display *dpy;
-Window root;
-XRectangle rect;
-Pixmap pmap;
-Atom wm_atom[WMLast];
-Atom net_atom[NetLast];
+Window root, barwin;
+Atom wm_atom[WMLast], net_atom[NetLast];
Cursor cursor[CurLast];
+XRectangle rect, barrect;
+Bool running = True;
+Client *client = NULL;
+char *bartext, tag[256];
int screen, sel_screen;
-unsigned int kmask, numlock_mask;
+unsigned int lock_mask, numlock_mask;
/* draw structs */
Brush brush = {0};
if(wa.override_redirect || XGetTransientForHint(dpy, wins[i], &d1))
continue;
if(wa.map_state == IsViewable)
- /*manage*/;
+ manage(create_client(wins[i], &wa));
}
}
if(wins)
status = XGetWindowProperty(dpy, w, a, 0L, l, False, t, &real, &format,
&res, &extra, prop);
- if(status != Success || *prop == 0) {
+ if(status != Success || *prop == NULL) {
return 0;
}
- if(res == 0) {
+ if(res == 0)
free((void *) *prop);
- }
return res;
}
}
XFreeModifiermap(modmap);
- kmask = 255 & ~(numlock_mask | LockMask);
+ lock_mask = 255 & ~(numlock_mask | LockMask);
}
static void
XSetWindowAttributes wa;
unsigned int mask;
Window w;
+ XEvent ev;
/* command line args */
for(i = 1; (i < argc) && (argv[i][0] == '-'); i++) {
init_lock_keys();
- pmap = XCreatePixmap(dpy, root, rect.width, rect.height,
+ brush.drawable = XCreatePixmap(dpy, root, rect.width, rect.height,
DefaultDepth(dpy, screen));
-
- wa.event_mask = SubstructureRedirectMask | EnterWindowMask | LeaveWindowMask;
- wa.cursor = cursor[CurNormal];
- XChangeWindowAttributes(dpy, root, CWEventMask | CWCursor, &wa);
+ brush.gc = XCreateGC(dpy, root, 0, 0);
/* style */
loadcolors(dpy, screen, &brush, BGCOLOR, FGCOLOR, BORDERCOLOR);
loadfont(dpy, &brush.font, FONT);
+ wa.override_redirect = 1;
+ wa.background_pixmap = ParentRelative;
+ wa.event_mask = ExposureMask;
+
+ barrect = rect;
+ barrect.height = labelheight(&brush.font);
+ barrect.y = rect.height - barrect.height;
+ barwin = XCreateWindow(dpy, root, barrect.x, barrect.y,
+ barrect.width, barrect.height, 0, DefaultDepth(dpy, screen),
+ CopyFromParent, DefaultVisual(dpy, screen),
+ CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa);
+ bartext = NULL;
+ XDefineCursor(dpy, barwin, cursor[CurNormal]);
+ XMapRaised(dpy, barwin);
+ draw_bar();
+
+ wa.event_mask = SubstructureRedirectMask | EnterWindowMask | LeaveWindowMask;
+ wa.cursor = cursor[CurNormal];
+ XChangeWindowAttributes(dpy, root, CWEventMask | CWCursor, &wa);
+
scan_wins();
+ while(running) {
+ XNextEvent(dpy, &ev);
+ if(handler[ev.type])
+ (handler[ev.type]) (&ev); /* call handler */
+ }
+
cleanup();
XCloseDisplay(dpy);