Comment 151 for bug 195982

Adam Simpkins (simpkins) wrote :

I saw this problem recently on a system running a very old version of Debian
testing. It's running xserver-xorg 6.8.2.dfsg.1-11 and VMware Workstation

It looks like this is a problem with VMware, not with the X server or anything
else. VMware apparently clears all the modifier maps when it grabs keyboard
and mouse focus, and then "resets" them to their original values when it loses
focus. I verified this by running the following in an xterm:

   while true; do xmodmap -pm; sleep 5; done

This prints out the current modifier maps every 5 seconds. I then used VMware
while this was running. When one of the guest machines has keyboard and mouse
focus, all the modifier maps become completely empty. When VMware releases the
keyboard and mouse grab (either by pressing Ctrl+Alt or moving the mouse out of
the guest window), the modifier maps are reset to normal. I unfortunately
don't have ltrace installed on this machine, so I can't tell exactly what X
calls vmware is making underneath, but it definitely looks like this is
VMware's doing.

My guess is that VMware "forgets" to reset the modifier map in some scenario
after it releases the keyboard/mouse grab.

I haven't reproduced the problem again since I first saw it. (I originally saw
it after I installed a Linux guest OS and installed VMware Tools on it. After
I encountered the problem, I reverted to a snapshot of the guest that didn't
have VMware Tools installed. I haven't seen the problem since. However, I'm
not positive that VMware Tools was what caused the problem, since I only have
this one data point.)