Commit Diff


commit - fa580e2116da0709c1e48b280722f0c18ef3fd73
commit + e1118cf27c9f66dfc90d2ead51a25602335bf9bf
blob - 30f819f9d9979e069f2c28c6d0c2fdf8126b62f9
blob + 2d82f5b98c4a1c04cdc9f4a40f3bff9fb9239cb3
--- src/cmd/9term/win.c
+++ src/cmd/9term/win.c
@@ -171,7 +171,7 @@ threadmain(int argc, char **argv)
 	putenv("winid", buf);
 	sprint(buf, "%d/tag", id);
 	fd = fsopenfd(fs, buf, OWRITE|OCEXEC);
-	write(fd, " Send Delete", 12);
+	write(fd, " Send Noscroll", 1+4+1+8);
 	close(fd);
 	sprint(buf, "%d/event", id);
 	eventfd = fsopen(fs, buf, ORDWR|OCEXEC);
@@ -202,6 +202,8 @@ threadmain(int argc, char **argv)
 	fswrite(ctlfd, buf, strlen(buf));
 	sprint(buf, "dump %s\n", dump);
 	fswrite(ctlfd, buf, strlen(buf));
+	sprint(buf, "scroll");
+	fswrite(ctlfd, buf, strlen(buf));
 	
 	updatewinsize(25, 80, 0, 0);
 	proccreate(stdoutproc, nil, STACK);
@@ -401,6 +403,16 @@ stdinproc(void *v)
 				if(e.q0==e.q1 && (e.flag&2)){
 					e2.flag = e.flag;
 					e = e2;
+				}
+				char buf[100];
+				snprint(buf, sizeof buf, "%.*S", e.nr, e.r);
+				if(cistrcmp(buf, "scroll") == 0) {
+					fsprint(ctlfd, "scroll\nshow");
+					break;
+				}
+				if(cistrcmp(buf, "noscroll") == 0) {
+					fsprint(ctlfd, "noscroll");
+					break;
 				}
 				if(e.flag & 8){
 					if(e.q1 != e.q0){