direct-io.hg

changeset 6494:e5ea9df58340

Fix Mouse hang with VNC

I've made some progress on this problem. Turns out, the VNC emulator is
a little over aggressive in dealing with reset commands for the mouse.
Since there are commands that enable and disable the mouse the VNC
emulator provides this control. Unfortunately, VNC also interprets
either a `reset' or `set to default' command to also disable the mouse.
This is wrong, neither of these commands are supposed to affect the
enabled status of the mouse so that, when X sends a `reset', no futher
mouse data is sent, making it look like X is hung.

Signed-off-by: Don Dugger <donald.d.dugger@intel.com>
Signed-off-by: Arun Sharma <arun.sharma@intel.com>
author adsharma@los-vmm.sc.intel.com
date Tue Aug 09 11:06:44 2005 -0800 (2005-08-09)
parents c463720c5439
children 242b3654b529
files tools/ioemu/hw/pckbd.c
line diff
     1.1 --- a/tools/ioemu/hw/pckbd.c	Tue Aug 09 11:06:44 2005 -0800
     1.2 +++ b/tools/ioemu/hw/pckbd.c	Tue Aug 09 11:06:44 2005 -0800
     1.3 @@ -704,14 +704,14 @@ int spare;
     1.4          case AUX_SET_DEFAULT:
     1.5              s->mouse_sample_rate = 100;
     1.6              s->mouse_resolution = 2;
     1.7 -            s->mouse_status = 0;
     1.8 +            s->mouse_status &= MOUSE_STATUS_ENABLED;
     1.9         	    s->touchpad.absolute = 0;
    1.10              kbd_queue(s, AUX_ACK, 1);
    1.11              break;
    1.12          case AUX_RESET:
    1.13              s->mouse_sample_rate = 100;
    1.14              s->mouse_resolution = 2;
    1.15 -            s->mouse_status = 0;
    1.16 +            s->mouse_status &= MOUSE_STATUS_ENABLED;
    1.17  	    s->touchpad.absolute = 0;
    1.18              kbd_queue(s, AUX_ACK, 1);
    1.19              kbd_queue(s, 0xaa, 1);