[Spice-devel] [PATCH spice-gtk 1/4] gtk: add spice_main_request_mouse_mode()

Victor Toso lists at victortoso.com
Mon Nov 16 07:34:51 PST 2015


Hi,

On Mon, Nov 16, 2015 at 03:34:57PM +0100, Marc-André Lureau wrote:
> Hi
> 
> On Wed, Nov 11, 2015 at 11:07 AM, Victor Toso <lists at victortoso.com> wrote:
> > Hi,
> >
> > On Tue, Nov 10, 2015 at 03:49:32PM +0100, Victor Toso wrote:
> >> Hi,
> >>
> >> On Tue, Nov 10, 2015 at 02:05:23PM +0100, Marc-André Lureau wrote:
> >> > Hi
> >> >
> >> > On Tue, Nov 10, 2015 at 11:05 AM, Victor Toso <lists at victortoso.com> wrote:
> >> > > Hi,
> >> > >
> >> > > On Mon, Nov 09, 2015 at 03:02:07PM +0100, Marc-André Lureau wrote:
> >> > >> Send a SpiceMsgcMainMouseModeRequest message to request a mouse mode.
> >> > >>
> >> > >> This allows to switch between client/absolute and server/relative mouse
> >> > >> modes.
> >> > >>
> >> > >> This is necessary for some applications that require pointer
> >> > >> re-positioning, which we can't provide through a remote protocol easily
> >> > >> with client pointer (no such hardware-level message exists afaik).
> >> > >
> >> > > I've retested again in top of rhel7 server/qemu and upstream
> >> > > server/qemu. On rhel7, the mouse pointer barely moves and it goes back
> >> > > againt to its original position in top-left corner. On upstream, the
> >> > > mouse pointer does not move at all.
> >> >
> >> > Are you running the client in a vm? If yes, you can't use server-side
> >> > mouse this way, because there is no way for the client cursor to be
> >> > wrapped.
> >> > Please test server-side cursor mode on bare-metal.
> >>
> >> All tests client was on bare-metal, f23 with upstream client.
> >> rhel7 server is also bare-metal desktop with some VMs running.
> >>
> >> >
> >> > > I did not lose my pointer this time (I could toggle back with
> >> > > Shift+F12).
> >> > >
> >> > > All VMs has ps/2 device. The mouse pointer should keep moving, right?
> >> >
> >> > It needs -machine ..vmport=off to work properly as explained:
> >> >
> >> > http://libvirt.org/git/?p=libvirt.git;a=commitdiff;h=208abbcbd7b7225d4506cfbb230cb2cb3fce87f8
> >> >
> >>
> >> Okay, I'll retest on rhel7 again but even with vmport=off
> >
> > aaaand vmport=off is not supported in rhel7, it seems
> > "qemu-kvm: -machine pc-i440fx-rhel7.0.0,accel=kvm,usb=off,vmport=off:
> > Invalid parameter 'vmport'"
> >
> >> this still
> >> fails with upstream spice-server. Mouse pointer did not change:
> >> on client=host, upstream spice-server.
> >
> > So, I manage to make it work. I needed to disable the tablet input
>
> What do you mean with "disable the tablet input" ? It works for me
> with or without -usbdevice tablet.
>

With tablet input the outcame is that from the videos I shared. Mouse
does not move!
The test was on fedora 22 guest, fedora 23 client where host and client
are the same machine; qemu, spice server and spice-gtk upstream (with
your patches on top).

> > device. It is working even without vmport=off.
>
> It doesn't work without vmport=off. Perhaps you tested with rhel qemu
> and it has it disabled at compile time or by default?

RHEL 7 qemu does not have vmport option so I did not test there again as
by your comments, it should not work.

>
> > With tablet device, the videos I've made are what happened with me.
> >
> > Cheers,
> >   toso
> >
> >> Btw, your patches look good, I'm just trying to understand the change
> >> and check if there are any issues.
> >>
> >> Also, it would be nice to include the information regarding vmport=off
> >> requirement, maybe in the API.
>
> Well, it's quite far from spice-gtk. It's a qemu-specific issue. I
> guess we could document it in the Spice user manual.
>

Indeed.

> >>
> >> Do you think the mouse mode should still change if vmport=off is not
> >> set?
>
> We would need a new spice-server API and flags in the protocol just
> for this qemu-specific issue. Imho, it's unnecessary. If switching
> mouse mode doesn't work, you can always switch back to the client
> mode.

Hm.. I would either prefer that mouse mode did not change if it can't
because the function and its documentation suggested that it will only
try to change the mouse mode.

Maybe changing the function name from spice_main_request_mouse_mode to
spice_main_set_mouse_mode wich returns a gboolean so we can improve it
later on without breaking API?

If you need more testing from my side, let me know.
  toso

>
>
> --
> Marc-André Lureau


More information about the Spice-devel mailing list