diff options
author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2010-11-23 22:33:37 +0100 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@redhat.com> | 2010-11-24 02:53:59 +0100 |
commit | f8b767cbaf2e642097f878a71a6b25f579824a44 (patch) | |
tree | d37d9a427509a369ab1ad3e9a4b7a459e4721c7d | |
parent | 2a96f51032e232de49ec67a9c52585d4f406ef01 (diff) |
gtk: don't send inputs before the channel is ready, or else it will eof
-rw-r--r-- | gtk/channel-inputs.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gtk/channel-inputs.c b/gtk/channel-inputs.c index 13e35bc..46f8704 100644 --- a/gtk/channel-inputs.c +++ b/gtk/channel-inputs.c @@ -218,6 +218,7 @@ void spice_inputs_motion(SpiceInputsChannel *channel, gint dx, gint dy, spice_inputs_channel *c; g_return_if_fail(channel != NULL); + g_return_if_fail(SPICE_CHANNEL(channel)->priv->state == SPICE_CHANNEL_STATE_READY); c = channel->priv; c->bs = button_state; @@ -236,6 +237,9 @@ void spice_inputs_position(SpiceInputsChannel *channel, gint x, gint y, g_return_if_fail(channel != NULL); + if (SPICE_CHANNEL(channel)->priv->state != SPICE_CHANNEL_STATE_READY) + return; + c = channel->priv; c->bs = button_state; c->x = x; @@ -256,6 +260,9 @@ void spice_inputs_button_press(SpiceInputsChannel *channel, gint button, g_return_if_fail(channel != NULL); + if (SPICE_CHANNEL(channel)->priv->state != SPICE_CHANNEL_STATE_READY) + return; + c = channel->priv; switch (button) { case SPICE_MOUSE_BUTTON_LEFT: @@ -291,6 +298,9 @@ void spice_inputs_button_release(SpiceInputsChannel *channel, gint button, g_return_if_fail(channel != NULL); + if (SPICE_CHANNEL(channel)->priv->state != SPICE_CHANNEL_STATE_READY) + return; + c = channel->priv; switch (button) { case SPICE_MOUSE_BUTTON_LEFT: @@ -323,6 +333,7 @@ void spice_inputs_key_press(SpiceInputsChannel *channel, guint scancode) spice_msg_out *msg; g_return_if_fail(channel != NULL); + g_return_if_fail(SPICE_CHANNEL(channel)->priv->state == SPICE_CHANNEL_STATE_READY); SPICE_DEBUG("%s: scancode %d", __FUNCTION__, scancode); if (scancode < 0x100) { @@ -344,6 +355,7 @@ void spice_inputs_key_release(SpiceInputsChannel *channel, guint scancode) spice_msg_out *msg; g_return_if_fail(channel != NULL); + g_return_if_fail(SPICE_CHANNEL(channel)->priv->state == SPICE_CHANNEL_STATE_READY); SPICE_DEBUG("%s: scancode %d", __FUNCTION__, scancode); if (scancode < 0x100) { |