I have eight monitors in a RHEL7 setup, all running Motif Window Manager (MWM), with one or more monitors showing only a vncviewer session.
As long as vncviewer is windowed, this behaves as expected: keyboard input is directed to the window that has focus. However, the VNC window is intended to be undecorated and to use the entire screen.
Problem is, when I put vncviewer in FullScreen mode, it grabs all keyboard input. Only it (and other full-screen vncviewer sessions, if there are any) can receive keyboard input, but I can't type in windows that are not vncviewer.
This problem occurs with both TigerVNC (1.8.0, 1.12.0, as well as 1.12.80) and RealVNC 6.22.515. In RealVNC, I can manipulate this behaviour to some extent by setting GrabKeyboard to 0, but this only reverses the problem: I can then send keyboard input to the non-vncviewer windows, but not to vncviewer when it is in FullScreen mode.
Does anyone know what's happening here to cause this? All I'm trying to do is to lose the window decoration and use the entire screen. What else does FullScreen do to cause this problem?
I've looked at the TigerVNC source, and I don't see anything suspicious:
public class DesktopWindow extends JFrame
{
// ...
public void fullscreen_on()
{
fullScreen.setParam(true);
lastState = getExtendedState();
lastBounds = getBounds();
dispose();
// Screen bounds calculation affected by maximized window?
setExtendedState(JFrame.NORMAL);
setUndecorated(true);
setVisible(true);
setBounds(getScreenBounds());
}
// ...
}
For TigerVNC, I found a couple of related issues in their issue tracker, but they are supposed to have all been fixed in 1.12: https://github.com/TigerVNC/tigervnc/issues/447 https://github.com/TigerVNC/tigervnc/issues/931
The fact that I have the exact same problem with RealVNC makes me wonder if this is really a TigerVNC bug.