xcb_change_property - Man Page

Changes a window property

Synopsis

#include <xcb/xproto.h>

Request function

xcb_void_cookie_t xcb_change_property(xcb_connection_t *conn, uint8_t mode, xcb_window_t window, xcb_atom_t property, xcb_atom_t type, uint8_t format, uint32_t data_len, const void *data);

Request Arguments

conn

The XCB connection to X11.

mode

One of the following values:

XCB_PROP_MODE_REPLACE

Discard the previous property value and store the new data.

XCB_PROP_MODE_PREPEND

Insert the new data before the beginning of existing data. The format must match existing property value. If the property is undefined, it is treated as defined with the correct type and format with zero-length data.

XCB_PROP_MODE_APPEND

Insert the new data after the beginning of existing data. The format must match existing property value. If the property is undefined, it is treated as defined with the correct type and format with zero-length data.

window

The window whose property you want to change.

property

The property you want to change (an atom).

type

The type of the property you want to change (an atom).

format

Specifies whether the data should be viewed as a list of 8-bit, 16-bit or 32-bit quantities. Possible values are 8, 16 and 32. This information allows the X server to correctly perform byte-swap operations as necessary.

data_len

Specifies the number of elements (see format).

data

The property data.

Description

Sets or updates a property on the specified window. Properties are for example the window title (WM_NAME) or its minimum size (WM_NORMAL_HINTS). Protocols such as EWMH also use properties - for example EWMH defines the window title, encoded as UTF-8 string, in the _NET_WM_NAME property.

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_change_property_checked. See xcb-requests(3) for details.

Errors

xcb_alloc_error_t

The X server could not store the property (no memory?).

xcb_atom_error_t

property or type do not refer to a valid atom.

xcb_match_error_t

TODO: reasons?

xcb_value_error_t

TODO: reasons?

xcb_window_error_t

The specified window does not exist.

Example

/*
 * Sets the WM_NAME property of the window to "XCB Example".
 *
 */
void my_example(xcb_connection_t *conn, xcb_window_t window) {
    xcb_change_property(conn,
        XCB_PROP_MODE_REPLACE,
        window,
        XCB_ATOM_WM_NAME,
        XCB_ATOM_STRING,
        8,
        strlen("XCB Example"),
        "XCB Example");
    xcb_flush(conn);
}

See Also

xcb-requests(3), xcb-examples(3), xcb_intern_atom(3), xprop(1)

Author

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

Referenced By

xcb_property_notify_event_t(3).

The man page xcb_change_property_checked(3) is an alias of xcb_change_property(3).

libxcb 1.17.0 X Version 11 XCB Requests