int PropGetGNUstepWMAttr(Window window, GNUstepWMAttributes **attr) { unsigned long *data; data = (unsigned long *)PropGetCheckProperty(window, w_global.atom.gnustep.wm_attr, w_global.atom.gnustep.wm_attr, 32, 9, NULL); if (!data) return False; *attr = malloc(sizeof(GNUstepWMAttributes)); if (!*attr) { XFree(data); return False; } (*attr)->flags = data[0]; (*attr)->window_style = data[1]; (*attr)->window_level = data[2]; (*attr)->reserved = data[3]; (*attr)->miniaturize_pixmap = data[4]; (*attr)->close_pixmap = data[5]; (*attr)->miniaturize_mask = data[6]; (*attr)->close_mask = data[7]; (*attr)->extra_flags = data[8]; XFree(data); return True; }
static int getMWMHints(Window window, MWMHints *mwmhints) { unsigned long *data; int count; if (!_XA_MOTIF_WM_HINTS) _XA_MOTIF_WM_HINTS = XInternAtom(dpy, "_MOTIF_WM_HINTS", False); data = (unsigned long *)PropGetCheckProperty(window, _XA_MOTIF_WM_HINTS, _XA_MOTIF_WM_HINTS, 32, 0, &count); if (!data) return 0; mwmhints->flags = 0; if (count >= 4) { mwmhints->flags = data[0]; mwmhints->functions = data[1]; mwmhints->decorations = data[2]; mwmhints->inputMode = data[3]; if (count > 5) mwmhints->unknown = data[4]; } XFree(data); return 1; }
Window PropGetClientLeader(Window window) { Window *win; Window leader; win = (Window *) PropGetCheckProperty(window, w_global.atom.wm.client_leader, XA_WINDOW, 32, 1, NULL); if (!win) return None; leader = (Window) *win; XFree(win); return leader; }
int PropGetWindowState(Window window) { long *data; long state; data = (long *)PropGetCheckProperty(window, w_global.atom.wm.state, w_global.atom.wm.state, 32, 1, NULL); if (!data) return -1; state = *data; XFree(data); return state; }