~strahinja/dmenu

153aaf88bf9bf5c6c4b118bd871f8cf1eafdcab5 — Quentin Rameau 2 years ago 65be875
Close when the embedding window is destroyed
2 files changed, 7 insertions(+), 2 deletions(-)

M LICENSE
M dmenu.c
M LICENSE => LICENSE +1 -1
@@ 9,7 9,7 @@ MIT/X Consortium License
© 2009 Evan Gates <evan.gates@gmail.com>
© 2010-2012 Connor Lane Smith <cls@lubutu.com>
© 2014-2019 Hiltjo Posthuma <hiltjo@codemadness.org>
© 2015-2018 Quentin Rameau <quinq@fifth.space>
© 2015-2019 Quentin Rameau <quinq@fifth.space>

Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),

M dmenu.c => dmenu.c +6 -1
@@ 556,6 556,11 @@ run(void)
		if (XFilterEvent(&ev, None))
			continue;
		switch(ev.type) {
		case DestroyNotify:
			if (ev.xdestroywindow.window != win)
				break;
			cleanup();
			exit(1);
		case Expose:
			if (ev.xexpose.count == 0)
				drw_map(drw, win, 0, 0, mw, mh);


@@ 667,7 672,7 @@ setup(void)
	XMapRaised(dpy, win);
	XSetInputFocus(dpy, win, RevertToParent, CurrentTime);
	if (embed) {
		XSelectInput(dpy, parentwin, FocusChangeMask);
		XSelectInput(dpy, parentwin, FocusChangeMask | SubstructureNotifyMask);
		if (XQueryTree(dpy, parentwin, &dw, &w, &dws, &du) && dws) {
			for (i = 0; i < du && dws[i] != win; ++i)
				XSelectInput(dpy, dws[i], FocusChangeMask);