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

Marc-André Lureau mlureau at redhat.com
Mon Nov 16 07:40:34 PST 2015


Hi

----- Original Message -----
> 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).

weird, I'll try with a f22 guest then.

> > > 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.

It's hard to know if the guest will do the right thing. I'll try to investigate if we can do anything about it on server side.

> 
> 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?

It's only sending a request to server side. I don't like the idea of having a "set" function for something that sends a request.

> 
> If you need more testing from my side, let me know.
>   toso
> 
> >
> >
> > --
> > Marc-André Lureau
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
> 


More information about the Spice-devel mailing list