XtGrabKey(3) XT FUNCTIONS XtGrabKey(3)

# [NAME](#NAME)

XtGrabKey, XtUngrabKey, XtGrabKeyboard, XtUngrabKeyboard, XtGrabButton, XtUngrabButton, XtGrabPointer, XtUngrabPointer - manage grabs

# [SYNTAX](#SYNTAX)

#include &lt;X11/Intrinsic.h&gt;

void XtGrabKey(Widget *widget*, KeyCode *keycode*, Modifiers *modifiers*, Boolean *owner\_events*, int *pointer\_mode*, int *keyboard\_mode*);

void XtUngrabKey(Widget *widget*, KeyCode *keycode*, Modifiers *modifiers*);

int XtGrabKeyboard(Widget *widget*, Boolean *owner\_events*, int *pointer\_mode*, int *keyboard\_mode*, Time *time*);

void XtUngrabKeyboard(Widget *widget*, Time *time*);

void XtGrabButton(Widget *widget*, int *button*, Modifiers *modifiers*, Boolean *owner\_events*, unsigned int *event\_mask*, int *pointer\_mode*, int *keyboard\_mode*, Window *confine\_to*, Cursor *cursor*);

void XtUngrabButton(Widget *widget*, unsigned *button*, Modifiers *modifiers*);

int XtGrabPointer(Widget *widget*, Boolean *owner\_events*, unsigned int *event\_mask*, int *pointer\_mode*, int *keyboard\_mode*, Window *confine\_to*, Cursor *cursor*, Time *time*);

void XtUngrabPointer(Widget *widget*, Time *time*);

# [ARGUMENTS](#ARGUMENTS)

[*widget*](#widget)

Specifies the widget in whose window the grab will occur. Must be of class Core or a subclass thereof.

[*keycode*](#keycode)

[*modifiers*](#modifiers)

[*owner\_events*](#owner_events)

[*pointer\_mode*](#pointer_mode)

[*keyboard\_mode*](#keyboard_mode)

[*time*](#time)

[*button*](#button)

[*confine\_to*](#confine_to)

[*cursor*](#cursor)

Specifies arguments to the associated Xlib function call.

# [DESCRIPTION](#DESCRIPTION)

**XtGrabKey** calls **XGrabKey** specifying the widget's window as the grab window if the widget is realized. The remaining arguments are exactly as for **XGrabKey**. If the widget is not realized, or is later unrealized, the call to **XGrabKey** will be performed (again) when the widget is realized and its window becomes mapped. In the future, if **XtDispatchEvent** is called with a **KeyPress** event matching the specified keycode and modifiers (which may be **AnyKey** or **AnyModifier**, respectively) for the widget's window, the Intrinsics will call **XtUngrabKeyboard** with the timestamp from the **KeyPress** event if either of the following conditions is true:

- There is a modal cascade and the widget is not in the active subset of the cascade and the keyboard was not previously grabbed, or
- **XFilterEvent** returns **True**.

**XtUngrabKey** calls **XUngrabKey** specifying the widget's window as the ungrab window if the widget is realized. The remaining arguments are exactly as for **XUngrabKey**. If the widget is not realized, **XtUngrabKey** removes a deferred **XtGrabKey** request, if any, for the specified widget, keycode, and modifiers.

If the specified widget is realized **XtGrabKeyboard** calls **XGrabKeyboard** specifying the widget's window as the grab window. The remaining arguments and return value are exactly as for **XGrabKeyboard**. If the widget is not realized, **XtGrabKeyboard** immediately returns **GrabNotViewable**. No future ungrab is implied by **XtGrabKeyboard**.

**XtUngrabKeyboard** calls **XUngrabKeyboard** with the specified time.

**XtGrabButton** calls **XGrabButton** specifying the widget's window as the grab window if the widget is realized. The remaining arguments are exactly as for **XGrabButton**. If the widget is not realized, or is later unrealized, the call to **XGrabButton** will be performed (again) when the widget is realized and its window becomes mapped. In the future, if **XtDispatchEvent** is called with a **ButtonPress** event matching the specified button and modifiers (which may be **AnyButton** or **AnyModifier**, respectively) for the widget's window, the Intrinsics will call **XtUngrabPointer** with the timestamp from the **ButtonPress** event if either of the following conditions is true:

- There is a modal cascade and the widget is not in the active subset of the cascade and the pointer was not previously grabbed, or
- **XFilterEvent** returns **True**.

**XtUngrabButton** calls **XUngrabButton** specifying the widget's window as the ungrab window if the widget is realized. The remaining arguments are exactly as for **XUngrabButton**. If the widget is not realized, **XtUngrabButton** removes a deferred **XtGrabButton** request, if any, for the specified widget, button, and modifiers.

**XtGrabPointer** calls **XGrabPointer** specifying the widget's window as the grab window. The remaining arguments and return value are exactly as for **XGrabPointer**. If the widget is not realized, **XtGrabPointer** immediately returns **GrabNotViewable**. No future ungrab is implied by **XtGrabPointer**.

**XtUngrabPointer** calls **XUngrabPointer** with the specified time.

# [SEE ALSO](#SEE_ALSO)

*X Toolkit Intrinsics - C Language Interface*  
*Xlib - C Language X Interface*

libXt 1.3.1 X Version 11

---

Document: XtUngrabKeyboard(3) from libxt 1.3.1-r9 (Chainguard OS)
Source: https://gitlab.freedesktop.org/xorg/lib/libxt.git
