https://invisible-island.net/xterm/xtoolkit/
XtSetSensitive, XtIsSensitive - set and check a widget's sensitivity state
#include <X11/Intrinsic.h> void XtSetSensitive(Widget w, Boolean sensitive); Boolean XtIsSensitive(Widget w);
sensitive Specifies a Boolean value that indicates whether the widget should receive keyboard and pointer events. w Specifies the widget.
The XtSetSensitive function first calls XtSetValues on the current wid- get with an argument list specifying that the sensitive field should change to the new value. It then recursively propagates the new value down the managed children tree by calling XtSetValues on each child to set the ancestor_sensitive to the new value if the new values for sen- sitive and the child's ancestor_sensitive are not the same. XtSetSensitive calls XtSetValues to change sensitive and ancestor_sen- sitive. Therefore, when one of these changes, the widget's set_values procedure should take whatever display actions are needed (for example, greying out or stippling the widget). XtSetSensitive maintains the invariant that if parent has either sensi- tive or ancestor_sensitive False, then all children have ancestor_sen- sitive False. The XtIsSensitive function returns True or False to indicate whether or not user input events are being dispatched. If both core.sensitive and core.ancestor_sensitive are True, XtIsSensitive returns True; other- wise, it returns False.
X Toolkit Intrinsics – C Language Interface Xlib - C Language X Interface X Version 11 libXt 1.1.5.2 XtSetSensitive(3)