[Spice-devel] [Qemu-devel] Re: paravirtual mouse/tablet

Anthony Liguori anthony at codemonkey.ws
Thu Jan 13 07:55:49 PST 2011


On 01/13/2011 05:51 AM, Gerd Hoffmann wrote:
> On 01/13/11 12:01, Stefan Hajnoczi wrote:
>
>> Can you elaborate how the spice display channel comes into play?  On a
>> physical machine you just have input devices with no notion of
>> display.  It's up to the windowing system to process input events and
>> handle multihead.  Why does a pv tablet tie itself to a display
>> channel?
>
> You have two qxl devices, each linked to a spice display channel.  The 
> spice client will open one window for each channel.  The mouse 
> position is a triple consisting of (x, y, window/channel).
>

Would be slightly cleaner to have multiple devices.  That avoids 
breaking the abstraction and sets us up to handling multiple mice 
properly in the future.  That maybe implies that we need an offscreen 
coordinate for the mouse so that you can hide the mouse when it leaves 
one window.

> Only the guest knows how it configured the displays, so only the guest 
> is able to create a correct pointer position out of this data.  So the 
> X-Server would combine this data with its virtual display 
> configuration (basically adding the display offset to the 
> coordinates), then send this as event to the X clients.
>
>> What about mouse wheel (aka z axis motion)?
>
> It's covered.  That are really just button presses at mouse protocol 
> level (buttons 4+5).  We can add them to the enum to have fancy names 
> for them, that is just the sugar on top though.

If we add features, then we can deal with things like an additional axis 
to cover pressure sensitive touchpads.  Not worth designing now but a 
feature negotiation gives us the option later.

Regards,

Anthony Liguori

> cheers,
>   Gerd
>
>



More information about the Spice-devel mailing list