Bool XQueryPointer(display, w, root_return, child_return, root_x_return, root_y_return, 
                     win_x_return, win_y_return, mask_return)
      Display *display;
      Window w;
      Window *root_return, *child_return;
      int *root_x_return, *root_y_return;
      int *win_x_return, *win_y_return;
      unsigned int *mask_return;


display Specifies the connection to the X server.
w Specifies the window.
root_return Returns the root window that the pointer is in.
child_return Returns the child window that the pointer is located in, if any.
Return the pointer coordinates relative to the root window's origin.
Return the pointer coordinates relative to the specified window.
mask_return Returns the current state of the modifier keys and pointer buttons.


The XQueryPointer() function returns the root window the pointer is logically on and the pointer coordinates relative to the root window's origin. If XQueryPointer() returns False, the pointer is not on the same screen as the specified window, and XQueryPointer() returns None to child_return and zero to win_x_return and win_y_return. If XQueryPointer() returns True, the pointer coordinates returned to win_x_return and win_y_return are relative to the origin of the specified window. In this case, XQueryPointer() returns the child that contains the pointer, if any, or else None to child_return.

XQueryPointer() returns the current logical state of the keyboard buttons and the modifier keys in mask_return. It sets mask_return to the bitwise inclusive OR of one or more of the button or modifier key bitmasks to match the current state of the mouse buttons and the modifier keys.

Note that the logical state of a device (as seen through Xlib) may lag the physical state if device event processing is frozen (see "Pointer Grabbing").

XQueryPointer() can generate a BadWindow error.


BadWindow A value for a Window argument does not name a defined Window.

See also

XGetWindowAttributes(), XQueryTree(), "Translating Screen Coordinates"
Christophe Tronche, ch@tronche.com