diff options
Diffstat (limited to 'tools/aewm-drakx/aewm-drakx.c')
-rw-r--r-- | tools/aewm-drakx/aewm-drakx.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/tools/aewm-drakx/aewm-drakx.c b/tools/aewm-drakx/aewm-drakx.c new file mode 100644 index 000000000..f550271c7 --- /dev/null +++ b/tools/aewm-drakx/aewm-drakx.c @@ -0,0 +1,53 @@ +/* aewm - a minimalistic X11 window manager. ------- vim:sw=4:et + * Copyright (c) 1998-2001 Decklin Foster <decklin@red-bean.com> + * Free software! Please see README for details and license. */ + +#include "aewm.h" + + +Display *dpy; +Window root; +Atom wm_state; + +static void scan_wins(void) +{ + unsigned int nwins, i; + Window dummyw1, dummyw2, *wins; + XWindowAttributes attr; + + XQueryTree(dpy, root, &dummyw1, &dummyw2, &wins, &nwins); + for (i = 0; i < nwins; i++) { + XGetWindowAttributes(dpy, wins[i], &attr); + if (!attr.override_redirect && attr.map_state == IsViewable) + make_new_client(wins[i]); + } + XFree(wins); +} + +static void setup_display(void) +{ + XSetWindowAttributes sattr; + + dpy = XOpenDisplay(NULL); + + if (!dpy) { + err("can't open display! check your DISPLAY variable."); + exit(1); + } + + XSetErrorHandler(handle_xerror); + root = RootWindow(dpy, DefaultScreen(dpy)); + + wm_state = XInternAtom(dpy, "WM_STATE", False); + + sattr.event_mask = SubstructureRedirectMask|SubstructureNotifyMask; + XChangeWindowAttributes(dpy, root, CWEventMask, &sattr); +} + + +int main() +{ + setup_display(); + scan_wins(); + do_event_loop(); +} |