summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2017-04-19 02:18:28 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2017-04-19 02:18:28 +0200
commit283a1c0788a89493a5a0a46c561d19f2231b9227 (patch)
tree9fbb985621049e303a1a519b879b071392208854
parent219050cc36b169a1f55b5441553bc8e123ddfa7e (diff)
downloadplan9front-283a1c0788a89493a5a0a46c561d19f2231b9227.tar.xz
vt: but not too fast :-)
if drawing can't keep up with the host, make sure we eventually redraw the screen and check for user events.
-rw-r--r--sys/src/cmd/vt/main.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/src/cmd/vt/main.c b/sys/src/cmd/vt/main.c
index 7dc022f82..a7c6091c8 100644
--- a/sys/src/cmd/vt/main.c
+++ b/sys/src/cmd/vt/main.c
@@ -645,7 +645,7 @@ waitchar(void)
return(rcvchar());
free(hostbuf);
hostbufp = hostbuf = nbrecvp(hc);
- if(host_avail())
+ if(host_avail() && nrand(8))
return(rcvchar());
}
drawscreen();
@@ -662,10 +662,13 @@ waitio(void)
{ mc->c, &mc->Mouse, CHANRCV },
{ mc->resizec, nil, CHANRCV },
{ kc->c, &kbdchar, CHANRCV },
- { hc, &hostbuf, CHANNOP },
+ { hc, &hostbuf, CHANRCV },
{ nil, nil, CHANEND },
};
- if(hostbuf == nil) a[AHOST].op = CHANRCV;
+ if(blocked)
+ a[AHOST].op = CHANNOP;
+ else if(hostbuf != nil)
+ a[AHOST].op = CHANNOBLK;
Next:
if(display->bufp > display->buf)
flushimage(display, 1);