[Spice-devel] [PATCH] client inputs: stop blinking keyboard when out of focus

Hans de Goede hdegoede at redhat.com
Fri Nov 12 11:15:33 PST 2010


Hi,

Looks good, ack.

Regards,

Hans


On 11/12/2010 01:37 PM, Marc-André Lureau wrote:
> We could introduce another boolean to prevent changes, or just reuse
> _active_modifiers_event = true to prevent further update until the
> focus comes back.
>
> Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=626975
> ---
>   client/inputs_channel.cpp |    9 +++++++++
>   client/inputs_channel.h   |    1 +
>   2 files changed, 10 insertions(+), 0 deletions(-)
>
> diff --git a/client/inputs_channel.cpp b/client/inputs_channel.cpp
> index 9ff5479..efcd96f 100644
> --- a/client/inputs_channel.cpp
> +++ b/client/inputs_channel.cpp
> @@ -404,6 +404,9 @@ void InputsChannel::set_local_modifiers()
>
>   void InputsChannel::on_focus_in()
>   {
> +    Lock lock(_update_modifiers_lock);
> +    _active_modifiers_event = false;
> +
>   #ifdef SYNC_REMOTE_MODIFIERS
>       Message* message = new Message(SPICE_MSGC_INPUTS_KEY_MODIFIERS);
>       SpiceMsgcKeyModifiers modifiers;
> @@ -415,6 +418,12 @@ void InputsChannel::on_focus_in()
>   #endif
>   }
>
> +void InputsChannel::on_focus_out()
> +{
> +    Lock lock(_update_modifiers_lock);
> +    _active_modifiers_event = true;
> +}
> +
>   void InputsChannel::init_scan_code(int index)
>   {
>       ASSERT((index&  0x80) == 0);
> diff --git a/client/inputs_channel.h b/client/inputs_channel.h
> index 00e185c..a9a2e2f 100644
> --- a/client/inputs_channel.h
> +++ b/client/inputs_channel.h
> @@ -34,6 +34,7 @@ public:
>       virtual void on_key_down(RedKey key);
>       virtual void on_key_up(RedKey key);
>       virtual void on_focus_in();
> +    virtual void on_focus_out();
>
>       void on_mouse_position(int x, int y, int buttons_state, int display_id);
>


More information about the Spice-devel mailing list