diff options
author | okan <okan> | 2014-08-25 14:31:22 +0000 |
---|---|---|
committer | okan <okan> | 2014-08-25 14:31:22 +0000 |
commit | 3b99d5357667095b3b89e2c41c2cb17d07537b42 (patch) | |
tree | a9f43a884779d14f94e8b64323740fb276694ca7 /xutil.c | |
parent | 7314a3aefd33e901cfa1bd4a48eb4e75be4c01e2 (diff) | |
download | cwm-3b99d5357667095b3b89e2c41c2cb17d07537b42.tar.gz cwm-3b99d5357667095b3b89e2c41c2cb17d07537b42.tar.xz cwm-3b99d5357667095b3b89e2c41c2cb17d07537b42.zip |
Since the flatting out of sc->group_names is only for setting
NET_DESKTOP_NAMES, merge the helper into xu_ewmh_net_desktop_names, where we actually set the property.
Diffstat (limited to 'xutil.c')
-rw-r--r-- | xutil.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/xutil.c b/xutil.c index b61b0ee..cafd793 100644 --- a/xutil.c +++ b/xutil.c @@ -281,10 +281,26 @@ xu_ewmh_net_current_desktop(struct screen_ctx *sc, long idx) } void -xu_ewmh_net_desktop_names(struct screen_ctx *sc, char *data, int n) +xu_ewmh_net_desktop_names(struct screen_ctx *sc) { + char *p, *q; + size_t len = 0, tlen, slen; + int i; + + for (i = 0; i < sc->group_nonames; i++) + len += strlen(sc->group_names[i]) + 1; + q = p = xcalloc(len, sizeof(*p)); + + tlen = len; + for (i = 0; i < sc->group_nonames; i++) { + slen = strlen(sc->group_names[i]) + 1; + (void)strlcpy(q, sc->group_names[i], tlen); + tlen -= slen; + q += slen; + } + XChangeProperty(X_Dpy, sc->rootwin, ewmh[_NET_DESKTOP_NAMES], - cwmh[UTF8_STRING], 8, PropModeReplace, (unsigned char *)data, n); + cwmh[UTF8_STRING], 8, PropModeReplace, (unsigned char *)p, len); } /* Application Window Properties */ |