summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2010-11-23 22:33:37 +0100
committerMarc-André Lureau <marcandre.lureau@redhat.com>2010-11-24 02:53:59 +0100
commitf8b767cbaf2e642097f878a71a6b25f579824a44 (patch)
treed37d9a427509a369ab1ad3e9a4b7a459e4721c7d
parent2a96f51032e232de49ec67a9c52585d4f406ef01 (diff)
gtk: don't send inputs before the channel is ready, or else it will eof
-rw-r--r--gtk/channel-inputs.c12
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) {