XSetInputFocus(display, focus, revert_to, time)
      Display *display;
      Window focus;
      int revert_to; 
      Time time; 
| display | Specifies the connection to the X server. | 
| focus | Specifies the window, PointerRoot, or None. | 
| revert_to | Specifies where the input focus reverts to if the window becomes not viewable. You can pass RevertToParent, RevertToPointerRoot, or RevertToNone. | 
| time | Specifies the time. You can pass either a timestamp or CurrentTime. | 
Depending on the focus argument, the following occurs:
The specified focus window must be viewable at the time XSetInputFocus() is called, or a BadMatch error results. If the focus window later becomes not viewable, the X server evaluates the revert_to argument to determine the new focus window as follows:
XSetInputFocus() can generate BadMatch, BadValue, and BadWindow errors.
| BadMatch | An InputOnly window is used as a Drawable. | 
| BadMatch | Some argument or pair of arguments has the correct type and range but fails to match in some other way required by the request. | 
| BadMatch | An InputOnly window is used as a Drawable. | 
| BadMatch | Some argument or pair of arguments has the correct type and range but fails to match in some other way required by the request. | 
| BadValue | Some numeric value falls outside the range of values accepted by the request. Unless a specific range is specified for an argument, the full range defined by the argument's type is accepted. Any argument defined as a set of alternatives can generate this error. | 
| BadWindow | A value for a Window argument does not name a defined Window. |