NAME
XSetInputFocus, XGetInputFocus - control input focus
SYNTAX
int XSetInputFocus(Display *_d_i_s_p_l_a_y, Window _f_o_c_u_s, int
_r_e_v_e_r_t___t_o, Time _t_i_m_e);
int XGetInputFocus(Display *_d_i_s_p_l_a_y, 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);
ARGUMENTS
-
_d_i_s_p_l_a_y
Specifies the connection to the X server.
-
-
_f_o_c_u_s
Specifies the window,
-
_P_o_i_n_t_e_r_R_o_o_t,
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,
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,
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,
or
_R_e_v_e_r_t_T_o_N_o_n_e).
-
_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_I_n_p_u_t_F_o_c_u_s
function changes the input focus and the 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 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_I_n_p_u_t_F_o_c_u_s
causes the X server to generate
_F_o_c_u_s_I_n
and
_F_o_c_u_s_O_u_t
events.
Depending on the focus argument,
the following occurs:
-
·
If focus is
-
_N_o_n_e,
all keyboard events are discarded until a new focus window is set,
and the revert_to argument is ignored.
-
·
If focus is a window,
-
it becomes the keyboard's focus window.
If a generated keyboard 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.
-
·
If focus is
-
_P_o_i_n_t_e_r_R_o_o_t,
the focus window is dynamically taken to be the root window of whatever screen
the pointer is on at each keyboard event.
In this case, the revert_to argument is ignored.
The specified focus window must be viewable at the time
_X_S_e_t_I_n_p_u_t_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:
-
·
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.
-
·
If revert_to is
-
_R_e_v_e_r_t_T_o_P_o_i_n_t_e_r_R_o_o_t
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
or
_N_o_n_e,
respectively.
When the focus reverts,
the X server generates
_F_o_c_u_s_I_n
and
_F_o_c_u_s_O_u_t
events, but the last-focus-change time is not affected.
_X_S_e_t_I_n_p_u_t_F_o_c_u_s
can generate
_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_I_n_p_u_t_F_o_c_u_s
function returns the focus window and the current focus state.
DIAGNOSTICS
-
_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.
SEE ALSO
XWarpPointer(3X11)
_X_l_i_b _- _C _L_a_n_g_u_a_g_e _X _I_n_t_e_r_f_a_c_e