From: Jonathon Jongsma <jjongsma@xxxxxxxxxx> --- server/inputs-channel.c | 6 +++--- server/reds.c | 5 +++-- server/reds.h | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/server/inputs-channel.c b/server/inputs-channel.c index bb5b203..d13f9d7 100644 --- a/server/inputs-channel.c +++ b/server/inputs-channel.c @@ -396,7 +396,7 @@ static int inputs_channel_handle_parsed(RedChannelClient *rcc, uint32_t size, ui mouse_state->y = pos->y; mouse_state->buttons = RED_MOUSE_BUTTON_STATE_TO_AGENT(pos->buttons_state); mouse_state->display_id = pos->display_id; - reds_handle_agent_mouse_event(mouse_state); + reds_handle_agent_mouse_event(reds, mouse_state); break; } case SPICE_MSGC_INPUTS_MOUSE_PRESS: { @@ -413,7 +413,7 @@ static int inputs_channel_handle_parsed(RedChannelClient *rcc, uint32_t size, ui RED_MOUSE_BUTTON_STATE_TO_AGENT(mouse_press->buttons_state) | (dz == -1 ? VD_AGENT_UBUTTON_MASK : 0) | (dz == 1 ? VD_AGENT_DBUTTON_MASK : 0); - reds_handle_agent_mouse_event(&inputs_channel->mouse_state); + reds_handle_agent_mouse_event(reds, &inputs_channel->mouse_state); } else if (tablet) { SpiceTabletInterface *sif; sif = SPICE_CONTAINEROF(tablet->base.sif, SpiceTabletInterface, base); @@ -433,7 +433,7 @@ static int inputs_channel_handle_parsed(RedChannelClient *rcc, uint32_t size, ui if (reds_get_agent_mouse() && reds_has_vdagent()) { inputs_channel->mouse_state.buttons = RED_MOUSE_BUTTON_STATE_TO_AGENT(mouse_release->buttons_state); - reds_handle_agent_mouse_event(&inputs_channel->mouse_state); + reds_handle_agent_mouse_event(reds, &inputs_channel->mouse_state); } else if (tablet) { SpiceTabletInterface *sif; sif = SPICE_CONTAINEROF(tablet->base.sif, SpiceTabletInterface, base); diff --git a/server/reds.c b/server/reds.c index 4e0caba..11f0e1a 100644 --- a/server/reds.c +++ b/server/reds.c @@ -834,10 +834,11 @@ static void vdi_port_send_tokens_to_client(RedClient *client, uint32_t tokens, v static void vdi_port_on_free_self_token(void *opaque) { + RedsState *reds = opaque; if (inputs_inited() && reds->pending_mouse_event) { spice_debug("pending mouse event"); - reds_handle_agent_mouse_event(inputs_get_mouse_state()); + reds_handle_agent_mouse_event(reds, inputs_get_mouse_state()); } } @@ -854,7 +855,7 @@ int reds_has_vdagent(void) return !!vdagent; } -void reds_handle_agent_mouse_event(const VDAgentMouseState *mouse_state) +void reds_handle_agent_mouse_event(RedsState *reds, const VDAgentMouseState *mouse_state) { SpiceCharDeviceWriteBuffer *char_dev_buf; VDInternalBuf *internal_buf; diff --git a/server/reds.h b/server/reds.h index e38a99a..76262ce 100644 --- a/server/reds.h +++ b/server/reds.h @@ -60,7 +60,7 @@ void reds_unregister_channel(RedsState *reds, RedChannel *channel); int reds_get_mouse_mode(RedsState *reds); // used by inputs_channel int reds_get_agent_mouse(void); // used by inputs_channel int reds_has_vdagent(void); // used by inputs channel -void reds_handle_agent_mouse_event(const VDAgentMouseState *mouse_state); // used by inputs_channel +void reds_handle_agent_mouse_event(RedsState *reds, const VDAgentMouseState *mouse_state); // used by inputs_channel enum { RED_RENDERER_INVALID, -- 2.4.3 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel