From 4da3a69fc7914b46b637058e89a8024e29749155 Mon Sep 17 00:00:00 2001 From: oga Date: Thu, 22 Jan 2009 15:26:33 +0000 Subject: Cache all of the X atoms we use at startup. Do this instead of querying for them every time we use them. This removes an XXX that has been in there since time began. This will become more important as we move towards supporting netwm. ok todd@, okan@. --- xutil.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) (limited to 'xutil.c') diff --git a/xutil.c b/xutil.c index a7ec1e9..e19b73b 100644 --- a/xutil.c +++ b/xutil.c @@ -15,7 +15,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $Id: xutil.c,v 1.9 2008/07/22 20:26:12 oga Exp $ + * $Id: xutil.c,v 1.10 2009/01/22 15:26:33 oga Exp $ */ #include "headers.h" @@ -145,12 +145,9 @@ xu_getprop(struct client_ctx *cc, Atom atm, Atom type, long len, u_char **p) int xu_getstate(struct client_ctx *cc, int *state) { - Atom wm_state; long *p = NULL; - wm_state = XInternAtom(X_Dpy, "WM_STATE", False); - - if (xu_getprop(cc, wm_state, wm_state, 2L, (u_char **)&p) <= 0) + if (xu_getprop(cc, WM_STATE, WM_STATE, 2L, (u_char **)&p) <= 0) return (-1); *state = (int)*p; @@ -162,16 +159,23 @@ xu_getstate(struct client_ctx *cc, int *state) void xu_setstate(struct client_ctx *cc, int state) { - Atom wm_state; long dat[2]; - /* XXX cache */ - wm_state = XInternAtom(X_Dpy, "WM_STATE", False); - dat[0] = (long)state; dat[1] = (long)None; cc->state = state; - XChangeProperty(X_Dpy, cc->win, wm_state, wm_state, 32, + XChangeProperty(X_Dpy, cc->win, WM_STATE, WM_STATE, 32, PropModeReplace, (unsigned char *)dat, 2); } + +Atom cwm_atoms[CWM_NO_ATOMS]; + +void +xu_getatoms(void) +{ + WM_STATE = XInternAtom(X_Dpy, "WM_STATE", False); + WM_DELETE_WINDOW = XInternAtom(X_Dpy, "WM_DELETE_WINDOW", False); + WM_TAKE_FOCUS = XInternAtom(X_Dpy, "WM_TAKE_FOCUS", False); + WM_PROTOCOLS = XInternAtom(X_Dpy, "WM_PROTOCOLS", False); +} -- cgit v1.2.3-2-gb3c3