xcb\_get\_geometry(3) XCB Requests xcb\_get\_geometry(3)

# [NAME](#NAME)

xcb\_get\_geometry - Get current window geometry

# [SYNOPSIS](#SYNOPSIS)

**#include &lt;xcb/xproto.h&gt;**

## [Request function](#Request_function)

xcb\_get\_geometry\_cookie\_t **xcb\_get\_geometry**(xcb\_connection\_t \**conn*, xcb\_drawable\_t *drawable*);

## [Reply datastructure](#Reply_datastructure)

```
typedef struct xcb_get_geometry_reply_t {


    uint8_t      response_type;


    uint8_t      depth;


    uint16_t     sequence;


    uint32_t     length;


    xcb_window_t root;


    int16_t      x;


    int16_t      y;


    uint16_t     width;


    uint16_t     height;


    uint16_t     border_width;


    uint8_t      pad0[2];
} xcb_get_geometry_reply_t;
```

## [Reply function](#Reply_function)

xcb\_get\_geometry\_reply\_t \***xcb\_get\_geometry\_reply**(xcb\_connection\_t \**conn*, xcb\_get\_geometry\_cookie\_t *cookie*, xcb\_generic\_error\_t \*\**e*);

# [REQUEST ARGUMENTS](#REQUEST_ARGUMENTS)

[*conn*](#conn)

The XCB connection to X11.

[*drawable*](#drawable)

The drawable (*Window* or *Pixmap*) of which the geometry will be received.

# [REPLY FIELDS](#REPLY_FIELDS)

[*response\_type*](#response_type)

The type of this reply, in this case *XCB\_GET\_GEOMETRY*. This field is also present in the *xcb\_generic\_reply\_t* and can be used to tell replies apart from each other.

[*sequence*](#sequence)

The sequence number of the last request processed by the X11 server.

[*length*](#length)

The length of the reply, in words (a word is 4 bytes).

[*depth*](#depth)

The depth of the drawable (bits per pixel for the object).

[*root*](#root)

Root window of the screen containing *drawable*.

[*x*](#x)

The X coordinate of *drawable*. If *drawable* is a window, the coordinate specifies the upper-left outer corner relative to its parent's origin. If *drawable* is a pixmap, the X coordinate is always 0.

[*y*](#y)

The Y coordinate of *drawable*. If *drawable* is a window, the coordinate specifies the upper-left outer corner relative to its parent's origin. If *drawable* is a pixmap, the Y coordinate is always 0.

[*width*](#width)

The width of *drawable*.

[*height*](#height)

The height of *drawable*.

[*border\_width*](#border_width)

The border width (in pixels).

# [DESCRIPTION](#DESCRIPTION)

Gets the current geometry of the specified drawable (either *Window* or *Pixmap*).

# [RETURN VALUE](#RETURN_VALUE)

Returns an *xcb\_get\_geometry\_cookie\_t*. Errors have to be handled when calling the reply function *xcb\_get\_geometry\_reply*.

If you want to handle errors in the event loop instead, use *xcb\_get\_geometry\_unchecked*. See [**xcb-requests(3)**](/man/os/libxcb/xcb-requests.3) for details.

# [ERRORS](#ERRORS)

[*xcb\_drawable\_error\_t*](#xcb_drawable_error_t)

TODO: reasons?

[*xcb\_window\_error\_t*](#xcb_window_error_t)

TODO: reasons?

# [EXAMPLE](#EXAMPLE)

```
/*


 * Displays the x and y position of the given window.


 *


 */
void my_example(xcb_connection_t *c, xcb_window_t window) {


    xcb_get_geometry_cookie_t cookie;


    xcb_get_geometry_reply_t *reply;


    cookie = xcb_get_geometry(c, window);


    /* ... do other work here if possible ... */


    if ((reply = xcb_get_geometry_reply(c, cookie, NULL))) {


        printf("This window is at %d, %d\n", reply->x, reply->y);


    }


    free(reply);
}
```

# [SEE ALSO](#SEE_ALSO)

[**xcb-requests**(3)](/man/os/libxcb/xcb-requests.3), [**xcb-examples**(3)](/man/os/libxcb/xcb-examples.3), [**xwininfo**(1)](/man/os/libxcb/xwininfo.1)

# [AUTHOR](#AUTHOR)

Generated from xproto.xml. Contact xcb@lists.freedesktop.org for corrections and improvements.

libxcb 1.17.0 X Version 11

---

Document: xcb_get_geometry_reply(3) from libxcb 1.17.0-r16 (Chainguard OS)
Source: https://gitlab.freedesktop.org/xorg/lib/libxcb.git
