Просмотр исходного кода

applied Jeroen Schot's shiftview patch

Anselm R. Garbe 18 лет назад
Родитель
Сommit
e0cfe07648
3 измененных файлов с 23 добавлено и 0 удалено
  1. 1 0
      dwm.h
  2. 4 0
      event.c
  3. 18 0
      tag.c

+ 1 - 0
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 */

+ 4 - 0
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;
 			}
 		}

+ 18 - 0
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;