[Spice-devel] [PATCH v6 3/5] Move mouse-specific handling out of virtio_port_read_complete
Christophe Fergeau
cfergeau at redhat.com
Tue Jan 24 08:46:11 UTC 2017
Looks good to me,
Acked-by: Christophe Fergeau <cfergeau at redhat.com>
On Mon, Jan 23, 2017 at 02:53:53PM +0100, Michal Suchanek wrote:
> Move some mouse-specific code from the start of
> virtio_port_read_complete to a separate helper
> as is the case with other message types.
>
> Signed-off-by: Michal Suchanek <msuchanek at suse.de>
> ---
> src/vdagentd/vdagentd.c | 43 ++++++++++++++++++++++++-------------------
> 1 file changed, 24 insertions(+), 19 deletions(-)
>
> diff --git a/src/vdagentd/vdagentd.c b/src/vdagentd/vdagentd.c
> index 2b16ca4..785ce50 100644
> --- a/src/vdagentd/vdagentd.c
> +++ b/src/vdagentd/vdagentd.c
> @@ -118,6 +118,29 @@ static void do_client_disconnect(void)
> }
> }
>
> +void do_client_mouse(struct vdagentd_uinput **uinputp, VDAgentMouseState *mouse)
> +{
> + vdagentd_uinput_do_mouse(uinputp, mouse);
> + if (!*uinputp) {
> + /* Try to re-open the tablet */
> + struct agent_data *agent_data =
> + udscs_get_user_data(active_session_conn);
> + if (agent_data)
> + *uinputp = vdagentd_uinput_create(uinput_device,
> + agent_data->width,
> + agent_data->height,
> + agent_data->screen_info,
> + agent_data->screen_count,
> + debug > 1,
> + uinput_fake);
> + if (!*uinputp) {
> + syslog(LOG_CRIT, "Fatal uinput error");
> + retval = 1;
> + quit = 1;
> + }
> + }
> +}
> +
> static void do_client_monitors(struct vdagent_virtio_port *vport, int port_nr,
> VDAgentMessage *message_header, VDAgentMonitorsConfig *new_monitors)
> {
> @@ -335,25 +358,7 @@ static int virtio_port_read_complete(
> case VD_AGENT_MOUSE_STATE:
> if (message_header->size != sizeof(VDAgentMouseState))
> goto size_error;
> - vdagentd_uinput_do_mouse(&uinput, (VDAgentMouseState *)data);
> - if (!uinput) {
> - /* Try to re-open the tablet */
> - struct agent_data *agent_data =
> - udscs_get_user_data(active_session_conn);
> - if (agent_data)
> - uinput = vdagentd_uinput_create(uinput_device,
> - agent_data->width,
> - agent_data->height,
> - agent_data->screen_info,
> - agent_data->screen_count,
> - debug > 1,
> - uinput_fake);
> - if (!uinput) {
> - syslog(LOG_CRIT, "Fatal uinput error");
> - retval = 1;
> - quit = 1;
> - }
> - }
> + do_client_mouse(&uinput, (VDAgentMouseState *)data);
> break;
> case VD_AGENT_MONITORS_CONFIG:
> if (message_header->size < sizeof(VDAgentMonitorsConfig))
> --
> 2.10.2
>
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/spice-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20170124/0240583f/attachment-0001.sig>
More information about the Spice-devel
mailing list