merged focus{prev.next} into focusclient(1/-1)
authorAnselm R. Garbe <arg@suckless.org>
Thu, 22 Feb 2007 15:25:19 +0100
changeset 829 f1ec35606dbc
parent 828 4cb4940d8355
child 830 5a4fd8fec414
merged focus{prev.next} into focusclient(1/-1)
config.arg.h
config.default.h
dwm.h
layout.c
--- a/config.arg.h	Thu Feb 22 15:06:56 2007 +0100
+++ b/config.arg.h	Thu Feb 22 15:25:19 2007 +0100
@@ -52,8 +52,8 @@
 	{ MODKEY,			XK_i,		incnmaster,	"1" }, \
 	{ MODKEY,			XK_h,		incmasterw,	"-15" }, \
 	{ MODKEY,			XK_l,		incmasterw,	"15" }, \
-	{ MODKEY,			XK_j,		focusnext,	NULL }, \
-	{ MODKEY,			XK_k,		focusprev,	NULL }, \
+	{ MODKEY,			XK_j,		focusclient,	"1" }, \
+	{ MODKEY,			XK_k,		focusclient,	"-1" }, \
 	{ MODKEY,			XK_m,		togglemax,	NULL }, \
 	{ MODKEY,			XK_Return,	zoom,		NULL }, \
 	{ MODKEY|ShiftMask,		XK_space,	toggleversatile,NULL }, \
--- a/config.default.h	Thu Feb 22 15:06:56 2007 +0100
+++ b/config.default.h	Thu Feb 22 15:25:19 2007 +0100
@@ -48,8 +48,8 @@
 	{ MODKEY,			XK_i,		incnmaster,	"1" }, \
 	{ MODKEY,			XK_g,		incmasterw,	"15" }, \
 	{ MODKEY,			XK_s,		incmasterw,	"-15" }, \
-	{ MODKEY,			XK_Tab,		focusnext,	NULL }, \
-	{ MODKEY|ShiftMask,		XK_Tab,		focusprev,	NULL }, \
+	{ MODKEY,			XK_Tab,		focusclient,	"1" }, \
+	{ MODKEY|ShiftMask,		XK_Tab,		focusclient,	"-1" }, \
 	{ MODKEY,			XK_m,		togglemax,	NULL }, \
 	{ MODKEY,			XK_Return,	zoom,		NULL }, \
 	{ MODKEY|ShiftMask,		XK_space,	toggleversatile,NULL }, \
--- a/dwm.h	Thu Feb 22 15:06:56 2007 +0100
+++ b/dwm.h	Thu Feb 22 15:25:19 2007 +0100
@@ -119,8 +119,7 @@
 extern void grabkeys(void);			/* grab all keys defined in config.h */
 
 /* layout.c */
-extern void focusnext(const char *arg);		/* focuses next visible client, arg is ignored  */
-extern void focusprev(const char *arg);		/* focuses previous visible client, arg is ignored */
+extern void focusclient(const char *arg);	/* focuses next(1)/previous(-1) visible client */
 extern void incmasterw(const char *arg);	/* increments the master width with arg's index value */
 extern void incnmaster(const char *arg);	/* increments nmaster with arg's index value */
 extern void initlayouts(void);			/* initialize layout array */
--- a/layout.c	Thu Feb 22 15:06:56 2007 +0100
+++ b/layout.c	Thu Feb 22 15:25:19 2007 +0100
@@ -70,30 +70,26 @@
 /* extern */
 
 void
-focusnext(const char *arg) {
+focusclient(const char *arg) {
 	Client *c;
    
-	if(!sel)
+	if(!sel || !arg)
+		return;
+	switch(atoi(arg)) {
+	default:
 		return;
-	for(c = sel->next; c && !isvisible(c); c = c->next);
-	if(!c)
-		for(c = clients; c && !isvisible(c); c = c->next);
-	if(c) {
-		focus(c);
-		restack();
-	}
-}
-
-void
-focusprev(const char *arg) {
-	Client *c;
-
-	if(!sel)
-		return;
-	for(c = sel->prev; c && !isvisible(c); c = c->prev);
-	if(!c) {
-		for(c = clients; c && c->next; c = c->next);
-		for(; c && !isvisible(c); c = c->prev);
+	case 1:
+		for(c = sel->next; c && !isvisible(c); c = c->next);
+		if(!c)
+			for(c = clients; c && !isvisible(c); c = c->next);
+		break;
+	case -1:
+		for(c = sel->prev; c && !isvisible(c); c = c->prev);
+		if(!c) {
+			for(c = clients; c && c->next; c = c->next);
+			for(; c && !isvisible(c); c = c->prev);
+		}
+		break;
 	}
 	if(c) {
 		focus(c);