dwm

my fork of dwm
Index Commits Files Refs README LICENSE
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:
Mdwm.h | 1+
Mevent.c | 4++++
Mtag.c | 18++++++++++++++++++
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;