commit - 8d8865f3d04d53ecb9f65bdd231dfc365e9dc743
commit + 08166a45489b3246406ed72071eda245b5b96b0a
blob - 048a2cc465fc56c147c5efddfca6fda42cd839b4
blob + 37d501619a67caea5676045f72e3be35556d5ebf
--- src/cmd/rio/menu.c
+++ src/cmd/rio/menu.c
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(!c && e->type == ButtonPress)
if(numvirtuals > 1 && virt > 0)
switch_to(virt - 1);
+ return;
+ case Button5:
+ /* scroll down changes to next virtual screen */
+ if(!c && e->type == ButtonPress)
+ if(numvirtuals > 1 && virt < numvirtuals - 1)
+ switch_to(virt + 1);
return;
default:
return;
fprintf(stderr, "rio: exec %s", shell);
perror(" failed");
}
- execlp("9term", "9term", "-w", 0);
+ execlp("9term", "9term", scrolling ? "-ws" : "-w", 0);
execlp("xterm", "xterm", "-ut", 0);
perror("rio: exec 9term/xterm failed");
exit(1);
return;
currents[virt] = current;
virt = n;
+
+ /* redundant when called from a menu switch
+ * but needed for scroll-button switches
+ */
+ b2menu.lasthit = n;
+
switch_to_c(n, clients);
current = currents[virt];
}