commit e0cfe076485e7df266b53eaffaa093d9c94a61a7
parent 82be28998576083b3e66ed436eb90ceba819c60a
Author: Anselm R. Garbe <garbeam@gmail.com>
Date: Tue, 24 Jul 2007 18:29:29 +0200
applied Jeroen Schot's shiftview patch
Diffstat:
3 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/dwm.h b/dwm.h
@@ -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 */
diff --git a/event.c b/event.c
@@ -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;
}
}
diff --git a/tag.c b/tag.c
@@ -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;