[Spice-devel] [PATCH spice-server 1/2] gl: fix client mouse mode

Marc-André Lureau marcandre.lureau at redhat.com
Thu Sep 7 12:37:29 UTC 2017


Hi

----- Original Message -----
> Since 2.8, QEMU now longer creates QXL primary surfaces when using GL.
> This change broke client-side mouse mode, because Spice server relies on
> primary surface conditions.
> 
> When GL is enabled, use GL scanout informations.
> Mouse mode is always client when GL surfaces are used.
> 
> This patch and most of the message are based on a patch from
> Marc-André Lureau, just moving responsibility from reds to RedQxl.

My patch was updating reds_update_client_mouse_allowed() which I think was a better place to do cursor business.

Furthermore, it didn't mess with QXL/2D state.

> 
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
>  server/red-qxl.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/server/red-qxl.c b/server/red-qxl.c
> index b556428d2..a003052ca 100644
> --- a/server/red-qxl.c
> +++ b/server/red-qxl.c
> @@ -873,6 +873,13 @@ void spice_qxl_gl_scanout(QXLInstance *qxl,
>      /* FIXME: find a way to coallesce all pending SCANOUTs */
>      dispatcher_send_message(qxl_state->dispatcher,
>                              RED_WORKER_MESSAGE_GL_SCANOUT, &payload);
> +
> +    qxl_state->x_res = width;
> +    qxl_state->y_res = height;
> +    qxl_state->use_hardware_cursor = TRUE;
> +    qxl_state->primary_active = TRUE;

I didn't need to touch qxl-state. Not sure what would be the side effect of all this changes, and how they related to the problem.
 
> +
> +    reds_update_client_mouse_allowed(qxl_state->reds);
>  }
>  
>  SPICE_GNUC_VISIBLE
> --
> 2.13.5
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/spice-devel
> 


More information about the Spice-devel mailing list