[Top][All Lists]

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

Re: [Qemu-devel] [Question]Ctrl_R or Alt_R Key Can Not Be Released throu

From: Daniel P. Berrange
Subject: Re: [Qemu-devel] [Question]Ctrl_R or Alt_R Key Can Not Be Released through noVNC connection
Date: Tue, 29 Mar 2016 11:36:42 +0100
User-agent: Mutt/1.5.24 (2015-08-30)

On Tue, Mar 29, 2016 at 10:20:46AM +0000, Xulei (Stone) wrote:
> Is there anyone can give me some information? I would be very grateful.
> I have met several times that the right ctrl key or right alt key is in a 
> pressed status and 
> never released until I inject a sendkey qmp command.
> I use noVNC, a web-based vnc, as my vnc client. What confused me is that, 
> noVNC client
> seems automatically convert the right ctrl/alt to the left ctrl/alt which 
> means noVNC will
> not be possible to send right ctrl/alt key to Qemu vnc sever. What's more, I 
> have never 
> pressed any ctrl or alt key. This may happen even as soon as I use vnc to 
> connect my VM
> which is now in the login interface. So I'm not sure it is a Qemu bug or 
> noVNC bug.

The VNC protocol doesn't handle modifier keys explicitly, so clients have to
do extra hacks to deal with it. The problem typically arises when the VNC
client sends a Ctrl-press event, then the user switches focus to another
application before releasing the Ctrl key. The VNC client thus never sends
a Ctrl-release event and so the server thinks the Ctrl key is forever pressed.
Clients have to hack around this by tracking the state of all modifier keys
and explicitly sending fake release events when loosing keyboard focus. So
in summary I would expect the problem to be in the noVNC client

|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|

reply via email to

[Prev in Thread] Current Thread [Next in Thread]