If a future
KeyPress or KeyRelease event occurs within the specified subtree,
XtSetKeyboardFocus causes XtDispatchEvent to remap and send the event
to the specified descendant widget.

When there is no modal cascade, keyboard
events can occur within a widget W in one of three ways:

W has the X input
focus.

W has the keyboard focus of one of its ancestors, and the event occurs
within the ancestor or one of the ancestor's descendants.

No ancestor of
W has a descendant within the keyboard focus, and the pointer is within
W.

When there is a modal cascade, a widget W receives keyboard events if
an ancestor of W is in the active subset of the modal cascade and one or
more of the previous conditions is True.

When subtree or one of its descendants
acquires the X input focus or the pointer moves into the subtree such that
keyboard events would now be delivered to subtree, a FocusIn event is
generated for the descendant if FocusNotify events have been selected
by the descendant. Similarly, when W loses the X input focus or the keyboard
focus for one of its ancestors, a FocusOut event is generated for descendant
if FocusNotify events have been selected by the descendant.