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

Frediano Ziglio fziglio at redhat.com
Wed Sep 7 12:09:03 UTC 2016


> 
> Hi
> 
> ----- Original Message -----
> > 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.
> 
> Is there a patch for the server side?
> 

Started to write one but is conflicting with one from the refactory,
I was thinking about waiting after the merge.

> 
> > 
> > Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> > ---
> >  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);
> > +    }
> >  }
> 
> looks good to me otherwise
> 

Ack?

Frediano


More information about the Spice-devel mailing list