[spice-gtk] Ignore modifiers messages if no modifiers changed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This avoid keep sending modifiers changes if guest is not
synchronising the changes.

I consider this as an improving as this avoids client to try again
and again to force synchronisation however this does not prevent
every unwanted keystroke insertion which possibly can be a real
problem on some configurations.

For instance if guest do not handle caps lock as the client do
if client uses another modifiers (as num lock) this can force
inserting virtual caps keypress.

Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx>
---
 src/channel-inputs.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/channel-inputs.c b/src/channel-inputs.c
index 7572bff..f79bc38 100644
--- a/src/channel-inputs.c
+++ b/src/channel-inputs.c
@@ -242,8 +242,10 @@ static void inputs_handle_modifiers(SpiceChannel *channel, SpiceMsgIn *in)
     SpiceInputsChannelPrivate *c = SPICE_INPUTS_CHANNEL(channel)->priv;
     SpiceMsgInputsKeyModifiers *modifiers = spice_msg_in_parsed(in);
 
-    c->modifiers = modifiers->modifiers;
-    g_coroutine_signal_emit(channel, signals[SPICE_INPUTS_MODIFIERS], 0);
+    if (c->modifiers != modifiers->modifiers) {
+        c->modifiers = modifiers->modifiers;
+        g_coroutine_signal_emit(channel, signals[SPICE_INPUTS_MODIFIERS], 0);
+    }
 }
 
 /* coroutine context */
-- 
2.7.4

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]