From bfe852b3a29799c8810c735acbeba907f02881f2 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Sat, 10 Aug 2013 08:47:43 +0200 Subject: nusb/kb: *really* only send to mousein when mouse state actually changes (zero detlas, same buttons) --- sys/src/cmd/nusb/kb/kb.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'sys/src/cmd/nusb/kb/kb.c') diff --git a/sys/src/cmd/nusb/kb/kb.c b/sys/src/cmd/nusb/kb/kb.c index 4961a169b..695dc9ec6 100644 --- a/sys/src/cmd/nusb/kb/kb.c +++ b/sys/src/cmd/nusb/kb/kb.c @@ -459,7 +459,7 @@ ptrwork(void* a) { char err[ERRMAX]; char mbuf[80]; - int c, b, nerrs; + int c, b, nerrs, lastb; KDev* f = a; Ptr p; @@ -467,6 +467,7 @@ ptrwork(void* a) sethipri(); memset(&p, 0, sizeof(p)); + lastb = 0; nerrs = 0; for(;;){ @@ -508,6 +509,10 @@ ptrwork(void* a) if(p.z != 0) b |= (p.z > 0) ? 8 : 16; + if(p.x == 0 && p.y == 0 && p.z == 0 && b == lastb) + continue; + lastb = b; + seprint(mbuf, mbuf+sizeof(mbuf), "m%11d %11d %11d", p.x, p.y, b); if(write(f->infd, mbuf, strlen(mbuf)) < 0) kbfatal(f, "mousein i/o"); -- cgit v1.2.3