When using vncv on a terminal with software cursor (vesa, rpi) the mouse cursor leaves a trail. This seem to be caused by the fact that vncv loads picture updates with loadimage(2) directly to screen. Loading to an offscreen image followed by a draw(2) to screen removes the artifact. Reference: /n/sources/patch/applied/vncv-curtrail Date: Tue May 7 11:01:08 CES 2013 Signed-off-by: yarikos@gmail.com --- /sys/src/cmd/vnc/draw.c Tue May 7 10:45:47 2013 +++ /sys/src/cmd/vnc/draw.c Tue May 7 10:45:42 2013 @@ -106,6 +106,7 @@ static void updatescreen(Rectangle r) { + Image* img; int b, bb; lockdisplay(display); @@ -120,10 +121,15 @@ /* * assume load image fails only because of resize */ + img = allocimage(display, r, screen->chan, 0, DNofill); + if(img == nil) + sysfatal("updatescreen: %r"); b = Dx(r) * pixb * Dy(r); - bb = loadimage(screen, rectaddpt(r, screen->r.min), pixbuf, b); + bb = loadimage(img, r, pixbuf, b); if(bb != b && verbose) fprint(2, "loadimage %d on %R for %R returned %d: %r\n", b, rectaddpt(r, screen->r.min), screen->r, bb); + draw(screen, rectaddpt(r, screen->r.min), img, nil, r.min); + freeimage(img); unlockdisplay(display); }