add -k to close tabbed foreground client on WMDelete - tabbed - tab interface f… | |
git clone git://git.suckless.org/tabbed | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 95b46cd3a92cab0a9b18cabb911e11f7300c0e1a | |
parent 4ccaba49681008900bacfd1eec23571d9b488619 | |
Author: Justin Keogh <[email protected]> | |
Date: Mon, 21 Mar 2016 02:16:12 +0000 | |
add -k to close tabbed foreground client on WMDelete | |
Hello, this is useful when you want to use the same key binding that closes win… | |
Cheers | |
-J | |
From 829e95855f0fe78a368788a5e72231bd6456a8cf Mon Sep 17 00:00:00 2001 | |
From: jakeogh <[email protected]> | |
Date: Mon, 21 Mar 2016 01:36:28 +0000 | |
Subject: [PATCH] add -k to close foreground tabbed client on WM_DELETE_WINDOW | |
Signed-off-by: Christoph Lohmann <[email protected]> | |
Diffstat: | |
M tabbed.c | 15 ++++++++++++--- | |
1 file changed, 12 insertions(+), 3 deletions(-) | |
--- | |
diff --git a/tabbed.c b/tabbed.c | |
@@ -155,7 +155,8 @@ static void (*handler[LASTEvent]) (const XEvent *) = { | |
static int bh, wx, wy, ww, wh; | |
static unsigned int numlockmask; | |
static Bool running = True, nextfocus, doinitspawn = True, | |
- fillagain = False, closelastclient = False; | |
+ fillagain = False, closelastclient = False, | |
+ killclientsfirst = False; | |
static Display *dpy; | |
static DC dc; | |
static Atom wmatom[WMLast]; | |
@@ -236,8 +237,13 @@ clientmessage(const XEvent *e) | |
const XClientMessageEvent *ev = &e->xclient; | |
if (ev->message_type == wmatom[WMProtocols] && | |
- ev->data.l[0] == wmatom[WMDelete]) | |
+ ev->data.l[0] == wmatom[WMDelete]) { | |
+ if (nclients > 1 && killclientsfirst) { | |
+ killclient(0); | |
+ return; | |
+ } | |
running = False; | |
+ } | |
} | |
void | |
@@ -1247,7 +1253,7 @@ xsettitle(Window w, const char *str) | |
void | |
usage(void) | |
{ | |
- die("usage: %s [-dfsv] [-g geometry] [-n name] [-p [s+/-]pos]\n" | |
+ die("usage: %s [-dfksv] [-g geometry] [-n name] [-p [s+/-]pos]\n" | |
" [-r narg] [-o color] [-O color] [-t color] [-T color]\n" | |
" [-u color] [-U color] command...\n", argv0); | |
} | |
@@ -1273,6 +1279,9 @@ main(int argc, char *argv[]) | |
case 'g': | |
geometry = EARGF(usage()); | |
break; | |
+ case 'k': | |
+ killclientsfirst = True; | |
+ break; | |
case 'n': | |
wmname = EARGF(usage()); | |
break; |