diff options
| -rw-r--r-- | dwm.h | 1 | ||||
| -rw-r--r-- | event.c | 4 | ||||
| -rw-r--r-- | tag.c | 18 | 
3 files changed, 23 insertions, 0 deletions
| @@ -144,6 +144,7 @@ void tag(const char *arg);		/* tags sel with arg's index */  void toggletag(const char *arg);	/* toggles sel tags with arg's index */  void toggleview(const char *arg);	/* toggles the tag with arg's index (in)visible */  void view(const char *arg);		/* views the tag with arg's index */ +void shiftview(const char *arg);        /* views next(1)/previous(-1) tag */  /* util.c */  void *emallocz(unsigned int size);	/* allocates zero-initialized memory, exits on error */ @@ -135,6 +135,10 @@ buttonpress(XEvent *e) {  					else  						toggleview(buf);  				} +				else if(ev->button == Button4) +					shiftview("-1"); +				else if(ev->button == Button5) +					shiftview("1");  				return;  			}  		} @@ -99,6 +99,24 @@ settags(Client *c, Client *trans) {  			c->tags[i] = seltag[i];  } +void  +shiftview(const char *arg) { +	int i, j; + +	for(i = 0; !seltag[i]; i++); +	for(j = i + 1; j < ntags && !seltag[j]; j++); +	if(j < ntags) +		return; /* more then one tag selected */ +	seltag[i] = False; +	i += arg ? atoi(arg) : 0; +	if(i < 0) +		i = ntags - 1; +	else if(i >= ntags) +		i = 0; +	seltag[i] = True; +	lt->arrange(); +} +  void  tag(const char *arg) {  	int i; | 
