The plan9 /dev/mouse protocol doesn't send *release* button message when using wheel buttons. With that fix the vnc server can now handle successive wheel button messages. Reference: /n/sources/patch/applied/vncv-wheel-fix Date: Mon Jan 23 20:23:38 CET 2006 --- /sys/src/cmd/vnc/wsys.c Mon Jan 23 20:17:30 2006 +++ /sys/src/cmd/vnc/wsys.c Mon Jan 23 20:17:26 2006 @@ -147,8 +147,14 @@ m.xy.y = atoi(start+1+12); m.buttons = atoi(start+1+2*12) & 0x1F; m.xy = subpt(m.xy, screen->r.min); - if(ptinrect(m.xy, Rpt(ZP, v->dim))) + if(ptinrect(m.xy, Rpt(ZP, v->dim))){ mouseevent(v, m); + /* send wheel button *release* */ + if ((m.buttons & 0x7) != m.buttons) { + m.buttons &= 0x7; + mouseevent(v, m); + } + } } else eresized();