XSetDeviceFocus(3X11) AIX (X FUNCTIONS) XSetDeviceFocus(3X11) NAME XSetDeviceFocus, XGetDeviceFocus - control extension input device focus SYNTAX XSetDeviceFocus(_d_i_s_p_l_a_y, _d_e_v_i_c_e, _f_o_c_u_s, _r_e_v_e_r_t__t_o, _t_i_m_e) Display *_d_i_s_p_l_a_y; Display *_d_e_v_i_c_e; Window _f_o_c_u_s; int _r_e_v_e_r_t__t_o; Time _t_i_m_e; XGetDeviceFocus(_d_i_s_p_l_a_y, _d_e_v_i_c_e, _f_o_c_u_s__r_e_t_u_r_n, _r_e_v_e_r_t__t_o__r_e_t_u_r_n, _t_i_m_e__r_e_t_u_r_n) Display *_d_i_s_p_l_a_y; Display *_d_e_v_i_c_e; Window *_f_o_c_u_s__r_e_t_u_r_n; int *_r_e_v_e_r_t__t_o__r_e_t_u_r_n; int *_t_i_m_e__r_e_t_u_r_n; ARGUMENTS _d_i_s_p_l_a_y Specifies the connection to the X server. _d_e_v_i_c_e Specifies the device whose focus is to be queried or changed. _f_o_c_u_s Specifies the window, _P_o_i_n_t_e_r_R_o_o_t, _F_o_l_l_o_w_K_e_y_- _b_o_a_r_d, or _N_o_n_e. _f_o_c_u_s__r_e_t_u_r_n Returns the focus window, _P_o_i_n_t_e_r_R_o_o_t, _F_o_l_l_o_w_- _K_e_y_b_o_a_r_d, or _N_o_n_e. _r_e_v_e_r_t__t_o Specifies where the input focus reverts to if the window becomes not viewable. You can pass _R_e_v_e_r_t_T_o_P_a_r_e_n_t, _R_e_v_e_r_t_T_o_P_o_i_n_t_e_r_R_o_o_t, _R_e_v_e_r_t_T_o_- _F_o_l_l_o_w_K_e_y_b_o_a_r_d, or _R_e_v_e_r_t_T_o_N_o_n_e. _r_e_v_e_r_t__t_o__r_e_t_u_r_n Returns the current focus state _R_e_v_e_r_t_T_o_P_a_r_e_n_t, _R_e_v_e_r_t_T_o_P_o_i_n_t_e_r_R_o_o_t, _R_e_v_e_r_t_T_o_F_o_l_l_o_w_K_e_y_b_o_a_r_d, or _R_e_v_e_r_t_T_o_N_o_n_e. _t_i_m_e__r_e_t_u_r_n Returns the last_focus_time for the device. _t_i_m_e Specifies the time. You can pass either a timestamp or _C_u_r_r_e_n_t_T_i_m_e. DESCRIPTION The _X_S_e_t_D_e_v_i_c_e_F_o_c_u_s request changes the focus of the speci- fied device and its last-focus-change time. It has no effect if the specified time is earlier than the current last-focus-change time or is later than the current X server Rev. Release 5 Page 1 XSetDeviceFocus(3X11) AIX (X FUNCTIONS) XSetDeviceFocus(3X11) time. Otherwise, the last-focus-change time is set to the specified time _C_u_r_r_e_n_t_T_i_m_e is replaced by the current X server time). _X_S_e_t_D_e_v_i_c_e_F_o_c_u_s causes the X server to gen- erate _D_e_v_i_c_e_F_o_c_u_s_I_n and _D_e_v_i_c_e_F_o_c_u_s_O_u_t events. Depending on the focus argument, the following occurs: o+ If focus is _N_o_n_e , all device events are discarded until a new focus window is set, and the revert_to argument is ignored. o+ If focus is a window, it becomes the device's focus window. If a generated device event would normally be reported to this window or one of its inferiors, the event is reported as usual. Otherwise, the event is reported relative to the focus window. o+ If focus is _P_o_i_n_t_e_r_R_o_o_t, the focus window is dynami- cally taken to be the root window of whatever screen the pointer is on at each event from the specified dev- ice. In this case, the revert_to argument is ignored. o+ If focus is _F_o_l_l_o_w_K_e_y_b_o_a_r_d, the focus window is dynami- cally taken to be the window to which the X keyboard focus is set at each input event. The specified focus window must be viewable at the time _X_S_e_t_D_e_v_i_c_e_F_o_c_u_s is called, or a _B_a_d_M_a_t_c_h 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: o+ If revert_to is _R_e_v_e_r_t_T_o_P_a_r_e_n_t, the focus reverts to the parent (or the closest viewable ancestor), and the new revert_to value is taken to be _R_e_v_e_r_t_T_o_N_o_n_e. o+ If revert_to is _R_e_v_e_r_t_T_o_P_o_i_n_t_e_r_R_o_o_t, _R_e_v_e_r_t_T_o_F_o_l_l_o_w_K_e_y_- _b_o_a_r_d, or _R_e_v_e_r_t_T_o_N_o_n_e, the focus reverts to _P_o_i_n_t_e_r_- _R_o_o_t, _F_o_l_l_o_w_K_e_y_b_o_a_r_d, or _N_o_n_e, respectively. When the focus reverts, the X server generates _D_e_v_i_c_e_F_o_c_u_s_I_n and _D_e_v_i_c_e_F_o_c_u_s_O_u_t events, but the last-focus-change time is not affected. Input extension devices are not required to support the ability to be focused. Attempting to set the focus of a device that does not support this request will result in a _B_a_d_M_a_t_c_h error. Whether or not given device can support this request can be determined by the information returned by _X_O_p_e_n_D_e_v_i_c_e. For those devices that support focus, _X_O_p_e_n_D_e_v_i_c_e will return an _X_I_n_p_u_t_C_l_a_s_s_I_n_f_o structure with the input_class field equal to the constant _F_o_c_u_s_C_l_a_s_s (defined in the file _X_I._h). Rev. Release 5 Page 2 XSetDeviceFocus(3X11) AIX (X FUNCTIONS) XSetDeviceFocus(3X11) _X_S_e_t_D_e_v_i_c_e_F_o_c_u_s can generate _B_a_d_D_e_v_i_c_e, _B_a_d_M_a_t_c_h, _B_a_d_V_a_l_u_e, and _B_a_d_W_i_n_d_o_w errors. The _X_G_e_t_D_e_v_i_c_e_F_o_c_u_s request returns the focus window and the current focus state. Not all input extension devices can be focused. Attempting to query the focus state of a device that can't be focused results in a _B_a_d_M_a_t_c_h error. A device that can be focused returns information for input Class Focus when an _X_O_p_e_n_D_e_v_- _i_c_e request is made. _X_G_e_t_D_e_v_i_c_e_F_o_c_u_s can generate _B_a_d_D_e_v_i_c_e, and _B_a_d_M_a_t_c_h errors. DIAGNOSTICS _B_a_d_D_e_v_i_c_e An invalid device was specified. The specified device does not exist or has not been opened by this client via _X_O_p_e_n_I_n_p_u_t_D_e_v_i_c_e. This error may also occur if the specified device is the X keyboard or X pointer device. _B_a_d_V_a_l_u_e 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. _B_a_d_W_i_n_d_o_w A value for a Window argument does not name a defined Window. _B_a_d_M_a_t_c_h This error may occur if an _X_G_e_t_D_e_v_i_c_e_F_o_c_u_s or _X_S_e_t_D_e_v_i_c_e_F_o_c_u_s request was made specifying a device that the server implementation does not allow to be focused. SEE ALSO _P_r_o_g_r_a_m_m_i_n_g _w_i_t_h _X_l_i_b Rev. Release 5 Page 3