mirror of
https://github.com/leahneukirchen/cwm.git
synced 2023-08-10 21:13:12 +03:00
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.
This commit is contained in:
parent
7314a3aefd
commit
3b99d53576
3
calmwm.h
3
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_showing_desktop(struct screen_ctx *);
|
||||||
void xu_ewmh_net_virtual_roots(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_current_desktop(struct screen_ctx *, long);
|
||||||
void xu_ewmh_net_desktop_names(struct screen_ctx *, char *,
|
void xu_ewmh_net_desktop_names(struct screen_ctx *);
|
||||||
int);
|
|
||||||
|
|
||||||
void xu_ewmh_net_wm_desktop(struct client_ctx *);
|
void xu_ewmh_net_wm_desktop(struct client_ctx *);
|
||||||
Atom *xu_ewmh_get_net_wm_state(struct client_ctx *, int *);
|
Atom *xu_ewmh_get_net_wm_state(struct client_ctx *, int *);
|
||||||
|
26
group.c
26
group.c
@ -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 void group_restack(struct screen_ctx *, struct group_ctx *);
|
||||||
static int group_hidden_state(struct group_ctx *);
|
static int group_hidden_state(struct group_ctx *);
|
||||||
static void group_setactive(struct screen_ctx *, long);
|
static void group_setactive(struct screen_ctx *, long);
|
||||||
static void group_set_names(struct screen_ctx *);
|
|
||||||
|
|
||||||
const char *num_to_name[] = {
|
const char *num_to_name[] = {
|
||||||
"nogroup", "one", "two", "three", "four", "five", "six",
|
"nogroup", "one", "two", "three", "four", "five", "six",
|
||||||
@ -427,28 +426,7 @@ group_update_names(struct screen_ctx *sc)
|
|||||||
|
|
||||||
sc->group_names = strings;
|
sc->group_names = strings;
|
||||||
sc->group_nonames = n;
|
sc->group_nonames = n;
|
||||||
|
|
||||||
if (setnames)
|
if (setnames)
|
||||||
group_set_names(sc);
|
xu_ewmh_net_desktop_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);
|
|
||||||
}
|
}
|
||||||
|
20
xutil.c
20
xutil.c
@ -281,10 +281,26 @@ xu_ewmh_net_current_desktop(struct screen_ctx *sc, long idx)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
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],
|
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 */
|
/* Application Window Properties */
|
||||||
|
Loading…
Reference in New Issue
Block a user