From 7ba072eb1a4c66b68f47468db29b67353fac496c Mon Sep 17 00:00:00 2001 From: oga Date: Mon, 19 May 2008 17:13:55 +0000 Subject: allow an autogroup value of 0 to mean no group. This means you can set automatically "sticky" (in the traditional sense of the word) windows in autogroup mode. Based on an initial diff from Andrew Fresh, thanks! ok okan@. --- calmwm.h | 4 ++-- cwmrc.5 | 10 +++++++--- group.c | 5 ++++- parse.y | 4 ++-- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/calmwm.h b/calmwm.h index 2d14637..fec4cba 100644 --- a/calmwm.h +++ b/calmwm.h @@ -15,7 +15,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $Id: calmwm.h,v 1.44 2008/05/19 17:11:19 okan Exp $ + * $Id: calmwm.h,v 1.45 2008/05/19 17:13:55 oga Exp $ */ #ifndef _CALMWM_H_ @@ -159,7 +159,7 @@ struct client_ctx { TAILQ_HEAD(client_ctx_q, client_ctx); static char *shortcut_to_name[] = { - "XXX", "one", "two", "three", + "nogroup", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" }; diff --git a/cwmrc.5 b/cwmrc.5 index 81e1e95..7c63c77 100644 --- a/cwmrc.5 +++ b/cwmrc.5 @@ -1,4 +1,4 @@ -.\" $OpenBSD: cwmrc.5,v 1.6 2008/05/18 19:57:43 okan Exp $ +.\" $OpenBSD: cwmrc.5,v 1.7 2008/05/19 17:13:55 oga Exp $ .\" .\" Copyright (c) 2004,2005 Marius Aamodt Eriksen .\" @@ -15,7 +15,7 @@ .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" .\" The following requests are required for all man pages. -.Dd $Mdocdate: May 18 2008 $ +.Dd $Mdocdate: May 19 2008 $ .Dt CWMRC 5 .Os .Sh NAME @@ -33,7 +33,11 @@ The following options are accepted in the configuration file: Control automatic window grouping, based on the class and/or name properties, where .Ar group -is a number between 1 and 9. +is a number between 0 and 9. +If the group number is 0, then the window will not be grouped; this to +allow for +.Dq sticky +windows in sticky group mode. .Pp The class and name of a window may be obtained using .Xr xprop 1 . diff --git a/group.c b/group.c index f96e8f1..294d7f7 100644 --- a/group.c +++ b/group.c @@ -16,7 +16,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $Id: group.c,v 1.15 2008/05/19 17:11:19 okan Exp $ + * $Id: group.c,v 1.16 2008/05/19 17:13:55 oga Exp $ */ #include "headers.h" @@ -328,6 +328,9 @@ group_autogroup(struct client_ctx *cc) } } + if (strncmp("nogroup", group, 7) == 0) + return; + TAILQ_FOREACH(gc, &Groupq, entry) { if (strcmp(shortcut_to_name[gc->shortcut], group) == 0) { _group_add(gc, cc); diff --git a/parse.y b/parse.y index 5c5187c..6219960 100644 --- a/parse.y +++ b/parse.y @@ -1,4 +1,4 @@ -/* $OpenBSD: parse.y,v 1.8 2008/05/18 19:43:50 oga Exp $ */ +/* $OpenBSD: parse.y,v 1.9 2008/05/19 17:13:55 oga Exp $ */ /* * Copyright (c) 2002, 2003, 2004 Henning Brauer @@ -125,7 +125,7 @@ main : FONTNAME STRING { struct autogroupwin *aw; char *p; - if ($2 < 1 || $2 > 9) { + if ($2 < 0 || $2 > 9) { free($3); yyerror("autogroup number out of range: %d", $2); YYERROR; -- cgit v1.2.3-2-gb3c3