In order to achieve this we actually have to use the Swing FocusManager
in AWT instead of the DefaultKeyboardFocusManager
(javax.swing.FocusManager is a subclass of the
DefaultKeyboardFocusManager). In order to not add dependencies into
Swing in AWT, I created a subclass of javax.swing.FocusManager in
gnu.java.awt (no, we cannot use FocusManager directly because it is
abstract - thanks to the great design of the JDK), and let the
KeyboardManager create its instance of the FocusManager based on the
value of the new system property gnu.java.awt.FocusManager. So at least
I did not have to hardcode the Swing dependency. And in case a VM vendor
does not need/want Swing, this is easily changed to
java.awt.DefaultFocusManager.