diff options
author | Aurélien Aptel <aurelien.aptel@gmail.com> | 2011-06-08 21:35:58 +0200 |
---|---|---|
committer | Aurélien Aptel <aurelien.aptel@gmail.com> | 2011-06-08 21:35:58 +0200 |
commit | 4259a3ba3a99da4bc551c9cde6868366fb2c01fa (patch) | |
tree | e906e58aa8338ad307f318368fe6d602cc805240 /st.c | |
parent | fb32d01a183979b3235740aaea555bfe94759dab (diff) | |
download | st-4259a3ba3a99da4bc551c9cde6868366fb2c01fa.tar.gz st-4259a3ba3a99da4bc551c9cde6868366fb2c01fa.tar.bz2 |
add -w option to embed st. (thx nodus cursorius)
Diffstat (limited to 'st.c')
-rw-r--r-- | st.c | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -35,7 +35,7 @@ #define USAGE \ "st-" VERSION ", (c) 2010-2011 st engineers\n" \ - "usage: st [-t title] [-c class] [-v] [-e command...]\n" + "usage: st [-t title] [-c class] [-w windowid] [-v] [-e command...]\n" /* Arbitrary sizes */ #define ESC_TITLE_SIZ 256 @@ -260,6 +260,7 @@ static pid_t pid; static Selection sel; static char **opt_cmd = NULL; static char *opt_title = NULL; +static char *opt_embed = NULL; static char *opt_class = NULL; int @@ -1606,6 +1607,7 @@ void xinit(void) { XSetWindowAttributes attrs; Cursor cursor; + Window parent; if(!(xw.dpy = XOpenDisplay(NULL))) die("Can't open display\n"); @@ -1636,7 +1638,8 @@ xinit(void) { | ButtonMotionMask | ButtonPressMask | ButtonReleaseMask; attrs.colormap = xw.cmap; - xw.win = XCreateWindow(xw.dpy, XRootWindow(xw.dpy, xw.scr), 0, 0, + parent = opt_embed ? strtol(opt_embed, NULL, 0) : XRootWindow(xw.dpy, xw.scr); + xw.win = XCreateWindow(xw.dpy, parent, 0, 0, xw.w, xw.h, 0, XDefaultDepth(xw.dpy, xw.scr), InputOutput, XDefaultVisual(xw.dpy, xw.scr), CWBackPixel | CWBorderPixel | CWBitGravity | CWEventMask @@ -1943,6 +1946,9 @@ main(int argc, char *argv[]) { case 'c': if(++i < argc) opt_class = argv[i]; break; + case 'w': + if(++i < argc) opt_embed = argv[i]; + break; case 'e': /* eat every remaining arguments */ if(++i < argc) opt_cmd = &argv[i]; |