[Spice-devel] [PATCH] migration/channel-inputs: reset motion count after migration

Yonit Halperin yhalperi at redhat.com
Thu Jul 12 04:56:06 PDT 2012


The motion count must stay synchronized with the server, otherwise,
it is possible that we will stop sending motion events to the server
after migration.

rhbz#835997
---
 gtk/channel-inputs.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/gtk/channel-inputs.c b/gtk/channel-inputs.c
index ef35065..02ac026 100644
--- a/gtk/channel-inputs.c
+++ b/gtk/channel-inputs.c
@@ -69,6 +69,7 @@ static guint signals[SPICE_INPUTS_LAST_SIGNAL];
 
 static void spice_inputs_handle_msg(SpiceChannel *channel, SpiceMsgIn *msg);
 static void spice_inputs_channel_up(SpiceChannel *channel);
+static void spice_inputs_channel_reset(SpiceChannel *channel, gboolean migrating);
 
 /* ------------------------------------------------------------------ */
 
@@ -109,6 +110,7 @@ static void spice_inputs_channel_class_init(SpiceInputsChannelClass *klass)
     gobject_class->get_property = spice_inputs_get_property;
     channel_class->handle_msg   = spice_inputs_handle_msg;
     channel_class->channel_up   = spice_inputs_channel_up;
+    channel_class->channel_reset = spice_inputs_channel_reset;
 
     g_object_class_install_property
         (gobject_class, PROP_KEY_MODIFIERS,
@@ -583,3 +585,11 @@ static void spice_inputs_channel_up(SpiceChannel *channel)
     msg = set_key_locks(SPICE_INPUTS_CHANNEL(channel), c->locks);
     spice_msg_out_send_internal(msg);
 }
+
+static void spice_inputs_channel_reset(SpiceChannel *channel, gboolean migrating)
+{
+    SpiceInputsChannelPrivate *c = SPICE_INPUTS_CHANNEL(channel)->priv;
+    c->motion_count = 0;
+
+    SPICE_CHANNEL_CLASS(spice_inputs_channel_parent_class)->channel_reset(channel, migrating);
+}
-- 
1.7.7.6



More information about the Spice-devel mailing list