diff -r 3dc58ef90490 lsw.c --- a/lsw.c Tue Oct 17 09:30:06 2006 +0200 +++ b/lsw.c Sat Apr 17 01:04:18 2010 +0000 @@ -11,7 +11,6 @@ static char buf[1024]; static Atom netwmname; static Display *dpy; -static Window root; static void getname(Window w) { @@ -44,18 +43,22 @@ unsigned int i, num; Window *wins, d1, d2; XWindowAttributes wa; + Window win = 0; if((argc > 1) && !strncmp(argv[1], "-v", 3)) { fputs("lsw-"VERSION", (C)opyright MMVI Anselm R. Garbe\n", stdout); exit(EXIT_SUCCESS); } + else if(argc == 2) + win = atoi(argv[1]); if(!(dpy = XOpenDisplay(0))) { fputs("lsw: cannot open display\n", stderr); exit(EXIT_FAILURE); } - root = RootWindow(dpy, DefaultScreen(dpy)); + if(!win) + win = RootWindow(dpy, DefaultScreen(dpy)); netwmname = XInternAtom(dpy, "_NET_WM_NAME", False); - if(XQueryTree(dpy, root, &d1, &d2, &wins, &num)) { + if(XQueryTree(dpy, win, &d1, &d2, &wins, &num)) { for(i = 0; i < num; i++) { if(!XGetWindowAttributes(dpy, wins[i], &wa)) continue;