pub fn property_get(
    window: &Window,
    property: &Atom,
    type_: &Atom,
    offset: c_ulong,
    length: c_ulong,
    pdelete: i32
) -> Option<(Atom, i32, Vec<u8>)>
Expand description

Retrieves a portion of the contents of a property. If the property does not exist, then the function returns false, and GDK_NONE will be stored in actual_property_type.

The XGetWindowProperty() function that property_get() uses has a very confusing and complicated set of semantics. Unfortunately, property_get() makes the situation worse instead of better (the semantics should be considered undefined), and also prints warnings to stderr in cases where it should return a useful error to the program. You are advised to use XGetWindowProperty() directly until a replacement function for property_get() is provided.

window

a Window

property

the property to retrieve

type_

the desired property type, or GDK_NONE, if any type of data is acceptable. If this does not match the actual type, then actual_format and actual_length will be filled in, a warning will be printed to stderr and no data will be returned.

offset

the offset into the property at which to begin retrieving data, in 4 byte units.

length

the length of the data to retrieve in bytes. Data is considered to be retrieved in 4 byte chunks, so length will be rounded up to the next highest 4 byte boundary (so be careful not to pass a value that might overflow when rounded up).

pdelete

if true, delete the property after retrieving the data.

Returns

true if data was successfully received and stored in data, otherwise false.

actual_property_type

location to store the actual type of the property.

actual_format

location to store the actual return format of the data; either 8, 16 or 32 bits.

data

location to store a pointer to the data. The retrieved data should be freed with g_free() when you are finished using it.