XtSetKeyboardFocus(3Xt) XT FUNCTIONS XtSetKeyboardFocus(3Xt)NAME
XtSetKeyboardFocus - focus events on a child widget
SYNTAX
XtSetKeyboardFocus(Widget subtree, Widget descendant);
ARGUMENTS
subtree Specifies either the widget in the subtree structure which is to receive the keyboard event, or None. Note that it is not an
error to specify None when no input focus was previously set.
descendant
Specifies the widget for which the keyboard focus is to be set.
DESCRIPTION
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:
o W has the X input focus.
o W has the keyboard focus of one of its ancestors, and the event occurs within the ancestor or one of the ancestor's descendants.
o 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. Simi-
larly, 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.
SEE ALSO XtCallAcceptFocus(3Xt)
X Toolkit Intrinsics - C Language Interface
Xlib - C Language X Interface
XFree86 Version 4.7.0 XtSetKeyboardFocus(3Xt)
Check Out this Related Man Page
XtSetKeyboardFocus() XtSetKeyboardFocus()
Name
XtSetKeyboardFocus - redirect keyboard input to a widget.
Synopsis
void XtSetKeyboardFocus(subtree descendant)
Widget subtree, descendant;
Inputs
subtree Specifies the widget to be considered the root of the subtree for which the keyboard focus is to be set. Must be of class Core
or any subclass thereof.
descendant
Specifies a normal (non-popup) descendant of subtree to which keyboard events are to be redirected, or None. May be of class
Object or any subclass thereof.
Description
XtSetKeyboardFocus() causes XtDispatchEvent() to remap keyboard events that occur within the widget hierarchy rooted at subtree and to dis-
patch them to descendant. If descendant is not a subclass of Core, it is replaced by its closest windowed ancestor. If descendant is
None, keyboard events within subtree will be dispatched normally.
When subtree or one of its descendants acquires the X keyboard focus, or the pointer moves into the subtree such that keyboard events would
now be delivered to subtree, a FocusIn event is generated for descendant if FocusChange events have been selected by descendant. Simi-
larly, when subtree loses the X keyboard focus or the keyboard focus for one of its ancestors, a FocusOut event is generated for descendant
if FocusChange events have been selected by descendant.
For more details on how events are dispatched after a call to XtSetKeyboardFocus(), see XtDispatchEvent().
Usage
XtSetKeyboardFocus() does not call the Xlib function XSetInputFocus(); it simply causes the Intrinsics to dispatch events differently. For
most applications, this approach is preferred over the more heavy-handed Xlib function.
Example
If a dialog box contains a Label widget, some Button widgets, and a single Text widget for input, it is good style to allow the user to
enter text into the dialog when the mouse is anywhere over the dialog, not only when the mouse is over the Text widget itself. This can be
arranged with code like the following:
Widget shell, box, text, prompt, ok_button, cancel_button;
XtPopup(shell, XtGrabExclusive);
XtSetKeyboardFocus(box, text);
After this call to XtSetKeyboardFocus(), whenever the dialog box gets the X input focus (for example, when the mouse moves into it) all
keyboard events will be redirected at the text widget.
See AlsoXtAddGrab(1), XtDispatchEvent(1).
Xt - Keyboard Handling XtSetKeyboardFocus()