| GNOME Window Manager Compliance - How to write a GNOME compliant Window Manager | ||
|---|---|---|
| Prev | Chapter 1. Providing Client Information For The Window Manager | Next |
As an aide in having external applications be able to list and access clients being managed by the Window Manager, a property should be set on the root window of the name _WIN_CLIENT_LIST which is an array of type CARDINAL. Each entry is the Window ID of a managed client. If the list of managed clients changes, clients are added or deleted, this list should be updated.
Example:
Display *disp;
Window root_window;
Atom atom_set;
Window *wl;
int num;
atom_set = XInternAtom(disp, "_WIN_CLIENT_LIST", False);
num = number_of_clients;
wl = malloc(sizeof(Window) * num);
/* Fill in array of window ID's */
XChangeProperty(disp, root_window, atom_set, XA_CARDINAL, 32,
PropModeReplace, (unsigned char *)wl, num);
if (wl)
free(wl); |