XUngrabKeyboard() XUngrabKeyboard()
Name
XUngrabKeyboard - release the keyboard from an active grab.
Synopsis
XUngrabKeyboard(display, time)
Display *display;
Time time;
Arguments
display Specifies a connection to an X server; returned from XOpenDisplay().
time Specifies the time. Pass either a timestamp, expressed in milliseconds, or the constant CurrentTime. If this time is earlier
than the last-keyboard-grab time or later than the current server time, the keyboard will not be ungrabbed.
Description
XUngrabKeyboard() releases any active grab on the keyboard by this client. It executes as follows:
o Releases the keyboard and any queued events if this client has it actively grabbed from either XGrabKeyboard() or XGrabKey().
o Does not release the keyboard and any queued events if time is earlier than the last-keyboard-grab time or is later than the current X
server time.
o Generates FocusIn and FocusOut events.
The X server automatically performs an UngrabKeyboard if the grab_window (argument to XGrabKey() and XGrabKeyboard()) becomes unviewable.
For more information, see Volume One, Chapter 9, The Keyboard and Pointer.
See Also
XChangeActivePointerGrab(), XGrabButton(), XGrabKey(), XGrabKeyboard(), XGrabPointer(), XGrabServer(), XUngrabButton(), XUngrabKey(), XUn-
grabPointer(), XUngrabServer().
Xlib - Grabbing XUngrabKeyboard()
Check Out this Related Man Page
XGrabKeyboard() XGrabKeyboard()
Name
XGrabKeyboard - grab the keyboard.
Synopsis
int XGrabKeyboard(display, grab_window, owner_events, pointer_mode,
keyboard_mode, time)
Display *display;
Window grab_window;
Bool owner_events;
int pointer_mode, keyboard_mode;
Time time;
Arguments
display Specifies a connection to an X server; returned from XOpenDisplay().
grab_window
Specifies the ID of the window that requires continuous keyboard input.
owner_events
Specifies a boolean value of either True or False. See the "Description" section below.
pointer_mode
Controls processing of pointer events during the grab. Pass either GrabModeSync or GrabModeAsync.
keyboard_mode
Controls processing of keyboard events during the grab. Pass either GrabModeSync or GrabModeAsync.
time Specifies the time when the grab should take place. Pass either a timestamp, expressed in milliseconds, or the constant Current-
Time.
Returns
GrabSuccess on success. AlreadyGrabbed, GrabNotViewable, GrabInvalidTime, or GrabFrozen on failure.
Description
XGrabKeyboard() actively grabs control of the main keyboard. Further key events are reported only to the grabbing client. This request
generates FocusIn and FocusOut events.
XGrabKeyboard() processing is controlled by the value in the owner_events argument:
o If owner_events is False, all generated key events are reported to grab_window.
o If owner_events is True, then if a generated key event would normally be reported to this client, it is reported normally. Otherwise
the event is reported to grab_window.
Both KeyPress and KeyRelease events are always reported, independent of any event selection made by the client.
XGrabKeyboard() processing of pointer events and keyboard events are controlled by pointer_mode and keyboard_mode:
o If the pointer_mode or keyboard_mode is GrabModeAsync, event processing for the respective device continues normally.
o For keyboard_mode GrabModeAsync only: if the keyboard was currently frozen by this client, then processing of keyboard events is
resumed.
o If the pointer_mode or keyboard_mode is GrabModeSync, events for the respective device are queued by the server until a releasing XAl-
lowEvents() request occurs or until the keyboard grab is released as described above.
If the grab is successful, XGrabKeyboard() returns the constant GrabSuccess. XGrabKeyboard() fails under the following conditions and
returns the following:
o If the keyboard is actively grabbed by some other client, it returns AlreadyGrabbed.
o If grab_window is not viewable, it returns GrabNotViewable.
o If time is earlier than the last keyboard grab time or later than the current server time, it returns GrabInvalidTime.
o If the pointer is frozen by an active grab of another client, the request fails with a status GrabFrozen.
If the grab succeeds, the last keyboard grab time is set to the specified time, with CurrentTime replaced by the current X server time.
For more information on grabbing, see Volume One, Chapter 9, The Keyboard and Pointer.
Errors
BadValue
BadWindow
See Also
XChangeActivePointerGrab(), XGrabButton(), XGrabKey(), XGrabPointer(), XGrabServer(), XUngrabButton(), XUngrabKey(), XUngrabKeyboard(),
XUngrabPointer(), XUngrabServer().
Xlib - Grabbing XGrabKeyboard()