summaryrefslogtreecommitdiffstats
path: root/tools/aewm-drakx/aewm-drakx.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/aewm-drakx/aewm-drakx.c')
-rw-r--r--tools/aewm-drakx/aewm-drakx.c53
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();
+}