~kris/suckless

tabbed

5c560f3784971b1a3bbfc7d18af759778f7779d1 — Okan Demirmen 12 years ago b4fed5a
tabbed: UnmapNotify patch

Hi,

Simple patch for tabbed that prevents tabbed from killing a client that it
should no longer be managing due to an UnmapNotify event.

Add support for UnmapNotify; allows a window to map and unmap without
needing it to be destroyed.

Thanks,
Okan

Signed-off-by: Christoph Lohmann <20h@r-36.net>
1 files changed, 11 insertions(+), 0 deletions(-)

M tabbed.c
M tabbed.c => tabbed.c +11 -0
@@ 93,6 93,7 @@ static void clientmessage(const XEvent *e);
static void configurenotify(const XEvent *e);
static void configurerequest(const XEvent *e);
static void createnotify(const XEvent *e);
static void unmapnotify(const XEvent *e);
static void destroynotify(const XEvent *e);
static void die(const char *errstr, ...);
static void drawbar(void);


@@ 141,6 142,7 @@ static void (*handler[LASTEvent]) (const XEvent *) = {
	[ConfigureNotify] = configurenotify,
	[ConfigureRequest] = configurerequest,
	[CreateNotify] = createnotify,
	[UnmapNotify] = unmapnotify,
	[DestroyNotify] = destroynotify,
	[Expose] = expose,
	[FocusIn] = focusin,


@@ 286,6 288,15 @@ createnotify(const XEvent *e) {
}

void
unmapnotify(const XEvent *e) {
	const XUnmapEvent *ev = &e->xunmap;
	int c;

	if((c = getclient(ev->window)) > -1)
		unmanage(c);
}

void
destroynotify(const XEvent *e) {
	const XDestroyWindowEvent *ev = &e->xdestroywindow;
	int c;