Set and unset individual atoms in _NET_WM_STATE instead of overwriting the entire list everytime. This allows independent management of multiple states.

fixes #1873
This commit is contained in:
Ingo Bürk
2015-09-14 13:34:15 +02:00
parent 7de15b3815
commit 034815b8fd
6 changed files with 146 additions and 19 deletions

View File

@ -145,3 +145,18 @@ uint16_t get_visual_depth(xcb_visualid_t visual_id);
*
*/
xcb_visualid_t get_visualid_by_depth(uint16_t depth);
/**
* Add an atom to a list of atoms the given property defines.
* This is useful, for example, for manipulating _NET_WM_STATE.
*
*/
void xcb_add_property_atom(xcb_connection_t *conn, xcb_window_t window, xcb_atom_t property, xcb_atom_t atom);
/**
* Remove an atom from a list of atoms the given property defines without
* removing any other potentially set atoms. This is useful, for example, for
* manipulating _NET_WM_STATE.
*
*/
void xcb_remove_property_atom(xcb_connection_t *conn, xcb_window_t window, xcb_atom_t property, xcb_atom_t atom);