[Spice-devel] [spice-gtk][PATCH] widget: grab the kbd even if the kbd is not focused

Fabiano FidĂȘncio fidencio at redhat.com
Tue Oct 27 09:45:09 PDT 2015


Not grabbing the keyboard when it has no focus might end up in
undesired situations where the users have their mouse over the spice
widget but the keyboard does act over the client's DE.

The main situation I am trying to avoid can only be reproduced with
{virt,remote}-viewer as client and is quite annoying when using multiple
monitors:
- On a client's machine with 2 monitors, open remote-viewer in
  fullscreen mode (-f/--fullscreen)
- Move the mouse (without do any clicking operation) from one monitor to
  another.

  At this point, spice-gtk will try to grab the keyboard, but it won't
  happen because the keyboard has no focus.

- Do any keyboard action (like Alt+Tab) and you'll realize the keyboard
  action will take effect in the client's DE (as the keyboard was not
  grabbed).

A simpler reproducer can just be:
- Open remote-viewer (one single display)
- Give the focus to another app (by clicking the another app, for
  instance)
- Move the mouse pointer to the remote-viewer's guest area without
  taking the focus from the previous app (so, again, no clicking)

  Here, as mentioned above, spice-gtk wull try to grab the keyboard, but
  it won't happend because the keyboard has no focus.

- Do any keyboard action (like Alt+Tab) and you'll realize the keyboard
  action will take effect in the client's DE (as the keyboard was not
  grabbed).

Resolves: rhbz#1275231
---
 src/spice-widget.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/src/spice-widget.c b/src/spice-widget.c
index 503f82a..af5ae09 100644
--- a/src/spice-widget.c
+++ b/src/spice-widget.c
@@ -737,8 +737,6 @@ static void try_keyboard_grab(SpiceDisplay *display)
         return;
     if (d->keyboard_grab_active)
         return;
-    if (!d->keyboard_have_focus)
-        return;
     if (!d->mouse_have_pointer)
         return;
     if (d->keyboard_grab_released)
-- 
2.4.3



More information about the Spice-devel mailing list