Bug 1007877

Summary: Only trigger grab sequence upon key release, instead of press
Product: Red Hat Enterprise Linux 7 Reporter: Daniel Berrangé <berrange>
Component: gtk-vncAssignee: Daniel Berrangé <berrange>
Status: CLOSED CURRENTRELEASE QA Contact: Desktop QE <desktop-qa-list>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.0CC: berrange, tpelka, vbenes
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: gtk-vnc-0.5.2-4.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-06-13 09:48:33 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Daniel Berrangé 2013-09-13 13:36:13 UTC
Description of problem:
Virt-manager uses the keyboard shortcut ctrl+alt to toggle inside/outside the
VM (aka release pointer). Now Gnome uses ctrl+alt+arrow_key to switch virtual
desktops. So these two shortcuts collide and virt-manager will grab the key
presses as soon as ctrl+alt is pressed and toogle inside/outside the VM, which
makes switching desktops impossible.

There should be at least 2 ways to get this working.

Solution 1 (more elegant but probably more complex):
Do not immediately take action on key-down press event, instead wait for
another key to be pressed besides ctrl+alt (i.e. ctrl+alt+left) and react on
that. Otherwise if only ctrl+alt is pressed and the keys are released trigger
on that event to do the actual toggle inside/outside VM. (Note: when outside
the VM ctrl+alt+<something> should be handled by the windowmanager)

Benefit of this approach: All ctrl+alt+<something> keyboard shortcuts should
work, no more need for "ctrl+alt+<something> send keys". This should also allow
to switch virtual desktops inside and outside of a VM.


Solution 2 (less intrusive and easier to accomplish):
Just check whether currently inside or outside of the VM and pass
ctrl+alt+<something> to the window manager if outside.

Benefit of this approach: Allow switching of virtual desktops outside of VM.
Should be easier to accomplish without having looked at the actual code.


I'd prefer getting Solution 1 to work without knowing how much effort that
would cost. Thanks for considering, I'll try to help out on this as good as I
can.

Version-Release number of selected component (if applicable):
0.5.2-1.el7

How reproducible:
Always

Steps to Reproduce:
1.Try to press 'Ctrl+Alt+Left-Arrow' in the VM window
2.
3.

Actual results:
Ctrl-Alt  trigger grab sequenece

Expected results:
Ctrl+alt+left-arrow goes to the VM

Additional info:

Comment 6 Ludek Smid 2014-06-13 09:48:33 UTC
This request was resolved in Red Hat Enterprise Linux 7.0.

Contact your manager or support representative in case you have further questions about the request.