From c772d3c3f3e9cc986e8e0c0242b4d7a8e8dab4c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bert=20M=C3=BCnnich?= Date: Sun, 30 Oct 2016 19:10:25 +0100 Subject: [PATCH] Use -e for X window embedding --- Makefile | 2 +- options.c | 18 +++++++++--------- window.c | 8 +++----- window.h | 1 - 4 files changed, 13 insertions(+), 16 deletions(-) diff --git a/Makefile b/Makefile index c9b140c..4455b9b 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -VERSION := git-20161020 +VERSION := git-20161030 PREFIX := /usr/local MANPREFIX := $(PREFIX)/share/man diff --git a/options.c b/options.c index d292768..4a9772c 100644 --- a/options.c +++ b/options.c @@ -32,8 +32,8 @@ const options_t *options = (const options_t*) &_options; void print_usage(void) { - printf("usage: sxiv [-abcfhioqrtvZ] [-G GAMMA] [-g GEOMETRY] [-n NUM] " - "[-N NAME] [-S DELAY] [-s MODE] [-z ZOOM] [-w WID] FILES...\n"); + printf("usage: sxiv [-abcfhioqrtvZ] [-e WID] [-G GAMMA] [-g GEOMETRY] " + "[-N NAME] [-n NUM] [-S DELAY] [-s MODE] [-z ZOOM] FILES...\n"); } void print_version(void) @@ -71,7 +71,7 @@ void parse_options(int argc, char **argv) _options.thumb_mode = false; _options.clean_cache = false; - while ((opt = getopt(argc, argv, "abcfG:g:hin:N:oqrS:s:tvw:Zz:")) != -1) { + while ((opt = getopt(argc, argv, "abce:fG:g:hin:N:oqrS:s:tvZz:")) != -1) { switch (opt) { case '?': print_usage(); @@ -85,6 +85,12 @@ void parse_options(int argc, char **argv) case 'c': _options.clean_cache = true; break; + case 'e': + n = strtol(optarg, &end, 0); + if (*end != '\0') + error(EXIT_FAILURE, 0, "Invalid argument for option -e: %s", optarg); + _options.embed = n; + break; case 'f': _options.fullscreen = true; break; @@ -139,12 +145,6 @@ void parse_options(int argc, char **argv) case 'v': print_version(); exit(EXIT_SUCCESS); - case 'w': - n = strtol(optarg, &end, 0); - if (*end != '\0') - error(EXIT_FAILURE, 0, "Invalid argument for option -w: %s", optarg); - _options.embed = n; - break; case 'Z': _options.scalemode = SCALE_ZOOM; _options.zoom = 1.0; diff --git a/window.c b/window.c index 18f45b0..c6d22d6 100644 --- a/window.c +++ b/window.c @@ -133,7 +133,6 @@ void win_init(win_t *win) win->bar.l.buf = emalloc(win->bar.l.size); win->bar.r.buf = emalloc(win->bar.r.size); win->bar.h = options->hide_bar ? 0 : barheight; - win->embed = options->embed; INIT_ATOM_(WM_DELETE_WINDOW); INIT_ATOM_(_NET_WM_NAME); @@ -149,6 +148,7 @@ void win_init(win_t *win) void win_open(win_t *win) { int c, i, j, n; + long parent; win_env_t *e; XClassHint classhint; unsigned long *icon_data; @@ -160,6 +160,7 @@ void win_open(win_t *win) Bool fullscreen = options->fullscreen && fs_support; e = &win->env; + parent = options->embed != 0 ? options->embed : RootWindow(e->dpy, e->scr); sizehints.flags = PWinGravity; sizehints.win_gravity = NorthWestGravity; @@ -198,10 +199,7 @@ void win_open(win_t *win) win->y = 0; } - if (!(win->embed)) { - win->embed = RootWindow(e->dpy, e->scr); - } - win->xwin = XCreateWindow(e->dpy, win->embed, + win->xwin = XCreateWindow(e->dpy, parent, win->x, win->y, win->w, win->h, 0, e->depth, InputOutput, e->vis, 0, NULL); if (win->xwin == None) diff --git a/window.h b/window.h index 9aa5689..f5f9df0 100644 --- a/window.h +++ b/window.h @@ -71,7 +71,6 @@ typedef struct { unsigned int bw; bool fullscreen; - long embed; struct { int w;