Commit Diff


commit - 623979856321b997ebd32386eb2fbb3302aa33ad
commit + 3015b83184ca9d1f6e72800cb1b3df72dd63dd62
blob - d313f5e427b524a75cd1c641ed49d51a380d4b0a
blob + 048a2cc465fc56c147c5efddfca6fda42cd839b4
--- src/cmd/rio/menu.c
+++ src/cmd/rio/menu.c
@@ -118,10 +118,22 @@ button(XButtonEvent *e)
 		} else if(numvirtuals > 1 && (n = menuhit(e, &b2menu)) > -1) 
 				button2(n);
 		return;
-	default:
-		return;
 	case Button3:
 		break;
+	case Button4:
+		/* scroll down changes to next virtual screen */
+		if(!c)
+			if(numvirtuals > 1 && virt < numvirtuals - 1)
+				switch_to(virt + 1);
+		return;
+	case Button5:
+		/* scroll up changes to previous virtual screen */
+		if(!c)
+			if(numvirtuals > 1 && virt > 0)
+				switch_to(virt - 1);
+		return;
+	default:
+		return;
 	}
 
 	if (current && current->screen == s)
@@ -274,6 +286,7 @@ unhide(int n, int map)
 			c->label, (int)c->window);
 		return;
 	}
+	c->virt = virt;
 
 	if (map) {
 		XMapWindow(dpy, c->window);