[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] Support all 8 mouse buttons in PVFB

The VNC protocol allows upto 8 mouse buttons. The Dom0 -> DomU paravirt FB
protocol supports upto 8 mouse buttons. The VNC server in Dom0 simply drops
all mouse buttons > 3. Similarly when declaring capabilities to the kernel,
the xenkdb.c driver in DomU simply says it only supports 3 buttons, but evdev
is perfectly capable of exposing all 8 buttons. These two limitations both
mean that the mouse scroll wheels don't work in paravirt DomU.

The fixes for both these issues are trivial - just add in the relevant evdev
constants for buttons 4 -> 8.  Now I don't actually have an 8 button mouse
handy to explicitly test upto 8, but I've no reason to believe that buttons
4-8 have any non-linear ordering - only right & middle buttons seem to be
wierd in this regard. I've tested with a 5 button mouse & confirmed the
scrollwheel is operating correctly. ie, if you run 'xev' in Dom0 and 'xev'
in DomU you see the same X mouse button events in both cases, and the scroll
up & down functions work correctly.

I'm attaching two patches. One fixes the fbfront/xenkbd.c driver (it applies
against xen-devel - should be trivial to fixup against Gerd's latest patch).
The other patch fixes the VNC server - it also removes a c99-ism since we
don't compile with c99 enabled.

    Signed-off-by: Daniel P. Berrange <berrange@xxxxxxxxxx>

|=- Red Hat, Engineering, Emerging Technologies, Boston.  +1 978 392 2496 -=|
|=-           Perl modules: http://search.cpan.org/~danberr/              -=|
|=-               Projects: http://freshmeat.net/~danielpb/               -=|
|=-  GnuPG: 7D3B9505   F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505  -=| 

Attachment: xen-kernel-mouse-buttons.patch
Description: Text document

Attachment: xen-vnc-mouse-buttons.patch
Description: Text document

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.