summary refs log tree commit diff
path: root/xutil.c
diff options
context:
space:
mode:
authorokan <okan>2014-08-25 14:31:22 +0000
committerokan <okan>2014-08-25 14:31:22 +0000
commit3b99d5357667095b3b89e2c41c2cb17d07537b42 (patch)
treea9f43a884779d14f94e8b64323740fb276694ca7 /xutil.c
parent7314a3aefd33e901cfa1bd4a48eb4e75be4c01e2 (diff)
downloadcwm-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.c20
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 */