aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorokan2014-08-25 14:31:22 +0000
committerokan2014-08-25 14:31:22 +0000
commit65f7d6fe84c11c78932bd9c10bce0ed3ded143c8 (patch)
tree46450ff078a2e29d5d813fa95d9d652bff9dcb14
parent69a4c46eec5a14a1d2e31092a91056655acdf8d5 (diff)
downloadcwm-65f7d6fe84c11c78932bd9c10bce0ed3ded143c8.tar.gz
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.
-rw-r--r--calmwm.h5
-rw-r--r--group.c28
-rw-r--r--xutil.c22
3 files changed, 24 insertions, 31 deletions
diff --git a/calmwm.h b/calmwm.h
index bf4e98a..f81c83e 100644
--- a/calmwm.h
+++ b/calmwm.h
@@ -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.
*
- * $OpenBSD: calmwm.h,v 1.264 2014/08/25 12:49:19 okan Exp $
+ * $OpenBSD: calmwm.h,v 1.265 2014/08/25 14:31:22 okan Exp $
*/
#ifndef _CALMWM_H_
@@ -545,8 +545,7 @@ void xu_ewmh_net_wm_number_of_desktops(struct screen_ctx *);
void xu_ewmh_net_showing_desktop(struct screen_ctx *);
void xu_ewmh_net_virtual_roots(struct screen_ctx *);
void xu_ewmh_net_current_desktop(struct screen_ctx *, long);
-void xu_ewmh_net_desktop_names(struct screen_ctx *, char *,
- int);
+void xu_ewmh_net_desktop_names(struct screen_ctx *);
void xu_ewmh_net_wm_desktop(struct client_ctx *);
Atom *xu_ewmh_get_net_wm_state(struct client_ctx *, int *);
diff --git a/group.c b/group.c
index 473aff8..d73a71b 100644
--- a/group.c
+++ b/group.c
@@ -16,7 +16,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
- * $OpenBSD: group.c,v 1.95 2014/08/25 12:49:19 okan Exp $
+ * $OpenBSD: group.c,v 1.96 2014/08/25 14:31:22 okan Exp $
*/
#include <sys/param.h>
@@ -38,7 +38,6 @@ static void group_show(struct screen_ctx *, struct group_ctx *);
static void group_restack(struct screen_ctx *, struct group_ctx *);
static int group_hidden_state(struct group_ctx *);
static void group_setactive(struct screen_ctx *, long);
-static void group_set_names(struct screen_ctx *);
const char *num_to_name[] = {
"nogroup", "one", "two", "three", "four", "five", "six",
@@ -427,28 +426,7 @@ group_update_names(struct screen_ctx *sc)
sc->group_names = strings;
sc->group_nonames = n;
- if (setnames)
- group_set_names(sc);
-}
-static void
-group_set_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;
- }
-
- xu_ewmh_net_desktop_names(sc, p, len);
+ if (setnames)
+ xu_ewmh_net_desktop_names(sc);
}
diff --git a/xutil.c b/xutil.c
index a5c1302..525c231 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.
*
- * $OpenBSD: xutil.c,v 1.88 2014/08/25 12:49:19 okan Exp $
+ * $OpenBSD: xutil.c,v 1.89 2014/08/25 14:31:22 okan Exp $
*/
#include <sys/param.h>
@@ -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 */