diff -r 9c5ad5303c3c dmenu.c --- a/dmenu.c Mon Mar 22 07:50:26 2010 +0000 +++ b/dmenu.c Tue Mar 30 23:26:38 2010 +0000 @@ -766,6 +766,8 @@ main(int argc, char *argv[]) { unsigned int i; Bool topbar = True; + Bool subwin = False; + int rev; /* command line args */ for(i = 1; i < argc; i++) @@ -775,6 +777,8 @@ } else if(!strcmp(argv[i], "-b")) topbar = False; + else if(!strcmp(argv[i], "-w")) + subwin = True; else if(!strcmp(argv[i], "-l")) { vlist = True; calcoffsets = calcoffsetsv; @@ -808,7 +812,10 @@ if(!(dpy = XOpenDisplay(NULL))) eprint("dmenu: cannot open display\n"); screen = DefaultScreen(dpy); - root = RootWindow(dpy, screen); + if(subwin) + XGetInputFocus(dpy, &root, &rev); + else + root = RootWindow(dpy, screen); if(isatty(STDIN_FILENO)) { readstdin();