* See LICENSE file for license details.
*/
#include "dwm.h"
+#include <stdlib.h>
unsigned int blw = 0;
Layout *lt = NULL;
/* extern */
void
-focusnext(const char *arg) {
+focusclient(const char *arg) {
Client *c;
- if(!sel)
+ if(!sel || !arg)
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)
+ switch(atoi(arg)) {
+ default:
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);
void
incnmaster(const char *arg) {
- int i = arg ? atoi(arg) : 0;
- if((lt->arrange != tile) || (nmaster + i < 1)
- || (wah / (nmaster + i) <= 2 * BORDERPX))
- return;
- nmaster += i;
+ int i;
+
+ if(!arg)
+ nmaster = NMASTER;
+ else {
+ i = atoi(arg);
+ if((lt->arrange != tile) || (nmaster + i < 1)
+ || (wah / (nmaster + i) <= 2 * BORDERPX))
+ return;
+ nmaster += i;
+ }
if(sel)
lt->arrange();
else
void
setlayout(const char *arg) {
- unsigned int i;
+ int i;
if(!arg) {
for(i = 0; i < nlayouts && lt != &layout[i]; i++);