xcb_set_input_focus(3) XCB Requests xcb_set_input_focus(3)NAME
xcb_set_input_focus - Sets input focus
SYNOPSIS
#include <xcb/xproto.h>
Request function
xcb_void_cookie_t xcb_set_input_focus(xcb_connection_t *conn, uint8_t revert_to, xcb_window_t focus, xcb_timestamp_t time);
REQUEST ARGUMENTS
conn The XCB connection to X11.
revert_to One of the following values:
XCB_INPUT_FOCUS_NONE
The focus reverts to XCB_NONE, so no window will have the input focus.
XCB_INPUT_FOCUS_POINTER_ROOT
The focus reverts to XCB_POINTER_ROOT respectively. When the focus reverts, FocusIn and FocusOut events are generated,
but the last-focus-change time is not changed.
XCB_INPUT_FOCUS_PARENT
The focus reverts to the parent (or closest viewable ancestor) and the new revert_to value is XCB_INPUT_FOCUS_NONE.
XCB_INPUT_FOCUS_FOLLOW_KEYBOARD
NOT YET DOCUMENTED. Only relevant for the xinput extension.
Specifies what happens when the focus window becomes unviewable (if focus is neither XCB_NONE nor XCB_POINTER_ROOT).
focus The window to focus. All keyboard events will be reported to this window. The window must be viewable (TODO), or a xcb_match_er-
ror_t occurs (TODO).
If focus is XCB_NONE (TODO), all keyboard events are discarded until a new focus window is set.
If focus is XCB_POINTER_ROOT (TODO), focus is on the root window of the screen on which the pointer is on currently.
time Timestamp to avoid race conditions when running X over the network.
The special value XCB_CURRENT_TIME will be replaced with the current server time.
DESCRIPTION
Changes the input focus and the last-focus-change time. If the specified time is earlier than the current last-focus-change time, the re-
quest is ignored (to avoid race conditions when running X over the network).
A FocusIn and FocusOut event is generated when focus is changed.
RETURN VALUE
Returns an xcb_void_cookie_t. Errors (if any) have to be handled in the event loop.
If you want to handle errors directly with xcb_request_check instead, use xcb_set_input_focus_checked. See xcb-requests(3) for details.
ERRORS
xcb_window_error_t
The specified focus window does not exist.
xcb_value_error_t
TODO: Reasons?
xcb_match_error_t
The specified focus window is not viewable.
SEE ALSO xcb-requests(3), xcb_focus_in_event_t(3), xcb_focus_out_event_t(3)AUTHOR
Generated from xproto.xml. Contact xcb@lists.freedesktop.org for corrections and improvements.
XCB 2014-06-10 xcb_set_input_focus(3)
Check Out this Related Man Page
XSetInputFocus() XSetInputFocus()
Name
XSetInputFocus - set the keyboard focus window.
Synopsis
XSetInputFocus(display, focus, revert_to, time)
Display *display;
Window focus;
int revert_to;
Time time;
Arguments
display Specifies a connection to an X server; returned from XOpenDisplay().
focus Specifies the ID of the window you want to be the keyboard focus. Pass the window ID, PointerRoot, or None.
revert_to
Specifies which window the keyboard focus reverts to if the focus window becomes not viewable. Pass one of these constants:
RevertToParent, RevertToPointerRoot, or RevertToNone. Must not be a window ID.
time Specifies the time when the focus change should take place. Pass either a timestamp, expressed in milliseconds, or the constant
CurrentTime. Also returns the time of the focus change when CurrentTime is specified.
Description
XSetInputFocus() changes the keyboard focus and the last-focus-change time. The function has no effect if time is earlier than the current
last-focus-change time or later than the current X server time. Otherwise, the last-focus-change time is set to the specified time, with
CurrentTime replaced by the current X server time.
XSetInputFocus() generates FocusIn and FocusOut events if focus is different from the current focus.
XSetInputFocus() executes as follows, depending on what value you assign to the focus argument:
o If you assign None, all keyboard events are discarded until you set a new focus window. In this case, revert_to is ignored.
o If you assign a window ID, it becomes the main 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 normally; otherwise, the event is reported to the focus window. The speci-
fied focus window must be viewable at the time of the request (else a BadMatch error). If the focus window later becomes not viewable,
the focus window will change to the revert_to argument.
o If you assign PointerRoot, the focus window is dynamically taken to be the root window of whatever screen the pointer is on at each key-
board event. In this case, revert_to is ignored. This is the default keyboard focus setting.
If the focus window later becomes not viewable, XSetInputFocus() evaluates the revert_to argument to determine the new focus window:
o If you assign RevertToParent, the focus reverts to the parent (or the closest viewable ancestor) automatically with a new revert_to
argument of RevertToName.
o If you assign RevertToPointerRoot or RevertToNone, the focus reverts to that value automatically. FocusIn and FocusOut events are gen-
erated when the focus reverts, but the last focus change time is not affected.
Errors
BadMatch focus window not viewable when XSetInputFocus() called.
BadValue
BadWindow
See Also
XQLength(), XAllowEvents(), XCheckIfEvent(), XCheckMaskEvent(), XCheckTypedEvent(), XCheckTypedWindowEvent(), XCheckWindowEvent(),
XEventsQueued(), XGetInputFocus(), XGetMotionEvents(), XIfEvent(), XMaskEvent(), XNextEvent(), XPeekEvent(), XPeekIfEvent(), XPending(),
XPutBackEvent(), XSelectInput(), XSendEvent(), XSynchronize(), XWindowEvent().
Xlib - Input Handling XSetInputFocus()