[Spice-devel] [PATCH spice-gtk] Fix non-tablet non-vd-agent erratic mouse motion RH#1285378

Marie Stephanie Alesna istephielicious at gmail.com
Thu Sep 28 22:21:40 UTC 2017


On Wed, 27 Sep 2017 15:39:08 +0200, Marc-André Lureau wrote:
> > https://bugzilla.redhat.com/show_bug.cgi?id=1285378
>
> Is this really solving that bug under wayland? I thought the problem was
> that there was no gdk_device_warp() or alternative for relative mouse input.

Confirming my fix does not fix the Wayland bug (it even makes it worse).
It does fix a different mouse bug reproducible only on x11 server.

I will try to fix the Wayland issue (in fact unrelated to this patch) and
altogether to disable this warp functionality on Wayland completely.


> I need an explanation for the "delta +=". Why not set mouse_delta to 0 after
> using the value?

gdk_device_warp() is permanent, it moves the mouse pointer forever.
mouse_delta_x/y are applied still to the absolute mouse position, before it is
relativized to dx/dy.  Therefore it needs to be remembered forever.

Such one-time application of "delta" compensation could be done for dx/dy but
then we would need to apply inverse transform_input() to such delta as
gdk_device_warp() is done in screen coordinates and not in virtual machine
coordinates needed for dx/dy.


> Could you check if you can remove gdk_display_sync() with your patch?

I see no difference with both the original code and with my code (using
mouse_delta_x/y) whether the gdk_display_sync() call is present or not.

BTW today I have found the erratic mouse motion happens for me only with
virt-viewer over ssh -X (on local etherner).  On local machine the erratic
movement does not really happen.

Steph


More information about the Spice-devel mailing list