VNC development plan - discuss

Daniel P. Berrange berrange at redhat.com
Wed Mar 7 15:39:50 UTC 2007


On Wed, Mar 07, 2007 at 04:10:33PM +0100, Ralf Ertzinger wrote:
> Hi.
> 
> On Wed, 7 Mar 2007 14:55:45 +0000, Daniel P. Berrange wrote:
> 
> > I know, I know  - its awful. In the virt-manager which is in rawhide
> > this is worked around by doing a pointer grab & hiding the local
> > cursor. Not ideal but a hell of alot better than current. The root
> > problem is not really VNC's fault though - we get absolute mouse
> > coords in the local GTK widget, these are passed over VNC as absolute
> > coords to Xen, then passes them upto the guest OS as absolute coords,
> > and finally the guest X server translates them to relative coords and
> > applies mouse acceleration again :-( I've figured out a Xorg config
> > stting to make it use absolute coords in the guest, so now its just a
> > case of making X auto-configure this out-of-the-box.
> 
> Kill me for being stupid, but... Wouldn't it make sense to treat the
> virtual input device as a tablet (which deliver absolute coordinates
> by nature, no?) instead of a mouse (which deliver relative coordinates)?

In the perfect world, yes. But sadly this isn't a perfect world and so if
you want a pointer device that is guarenteed to work out-of-the-box with
all known OS, then it has to be a mouse. Even OS which do support tablets
don't typically support them in the installer. That all said, we are also
planning to make it possible to configure the pointer as a tablet for those
OS which support it. Things are complicated by the different between full
and paravirt though - fullvirt uses QEMU for its device model which does
various mice & tablets, none of the tablets are supported by in-tree Xorg
drivers though :-(  So the tablet config for QEMU is only suitable for
Windows guests at this time.

Paravirt is not technically exposing any particular kind of hardware at all.
It is injecting pointer events directly into the Linux input event device
layer - this knows nothing of the difference between mice & pointers - its
is merely an event stream which can handle abs or rel events. The Xorg 'evdev'
driver is capable of consuming such absolute coords, so its merely neccessary
to config X to use /dev/input/eventN instead of /dev/input/mice, and it will
handle absolute coords correctly.

Regards,
Dan.
-- 
|=- 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  -=| 




More information about the fedora-devel-list mailing list