X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=cwmcc%2Fprop.c;h=6e9e08126c976d4b72f7ab7725a969a566ef0478;hb=5cf61ee02354c1c9f80c11f3796afc4b948055d6;hp=66d2fb8de1a4791f4001566524390b0f6797759d;hpb=73f85d0a630840ab2aa06f1237ef5802b65b43ec;p=chaz%2Fopenbox diff --git a/cwmcc/prop.c b/cwmcc/prop.c index 66d2fb8d..6e9e0812 100644 --- a/cwmcc/prop.c +++ b/cwmcc/prop.c @@ -84,9 +84,7 @@ static gboolean get_all(Window win, Atom prop, Atom type, int size, &ret_items, &bytes_left, &xdata); if (res == Success) { if (ret_size == size && ret_items > 0) { - *data = g_malloc(ret_items * (size / 8) + sizeof(guchar*)); - g_memmove(*data, xdata, ret_items * (size / 8)); - data[ret_items * (size / 8)] = NULL; + *data = g_memdup(xdata, ret_items * (size / 8)); *num = ret_items; ret = TRUE; } @@ -108,18 +106,18 @@ static gboolean get_stringlist(Window win, Atom prop, char ***list, int *nstr) return ret; } -gboolean prop_get32(Window win, Atom prop, Atom type, gulong *ret) +gboolean cwmcc_prop_get32(Window win, Atom prop, Atom type, gulong *ret) { return get_prealloc(win, prop, type, 32, (guchar*)ret, 1); } -gboolean prop_get_array32(Window win, Atom prop, Atom type, gulong **ret, +gboolean cwmcc_prop_get_array32(Window win, Atom prop, Atom type, gulong **ret, gulong *nret) { return get_all(win, prop, type, 32, (guchar**)ret, nret); } -gboolean prop_get_string_locale(Window win, Atom prop, char **data) +gboolean cwmcc_prop_get_string_locale(Window win, Atom prop, char **data) { char **list; int nstr; @@ -132,7 +130,7 @@ gboolean prop_get_string_locale(Window win, Atom prop, char **data) return FALSE; } -gboolean prop_get_string_utf8(Window win, Atom prop, char **ret) +gboolean cwmcc_prop_get_string_utf8(Window win, Atom prop, char **ret) { char *raw; gulong num; @@ -145,7 +143,7 @@ gboolean prop_get_string_utf8(Window win, Atom prop, char **ret) return FALSE; } -gboolean prop_get_strings_utf8(Window win, Atom prop, char ***ret) +gboolean cwmcc_prop_get_strings_utf8(Window win, Atom prop, char ***ret) { char *raw, *p; gulong num, i; @@ -165,7 +163,7 @@ gboolean prop_get_strings_utf8(Window win, Atom prop, char ***ret) return FALSE; } -gboolean prop_get_strings_locale(Window win, Atom prop, char ***ret) +gboolean cwmcc_prop_get_strings_locale(Window win, Atom prop, char ***ret) { char *raw, *p; gulong num, i; @@ -191,7 +189,26 @@ gboolean prop_get_strings_locale(Window win, Atom prop, char ***ret) return FALSE; } -void prop_set_strings_utf8(Window win, Atom prop, char **strs) +void cwmcc_prop_set32(Window win, Atom prop, Atom type, gulong val) +{ + XChangeProperty(cwmcc_display, win, prop, type, 32, PropModeReplace, + (guchar*)&val, 1); +} + +void cwmcc_prop_set_array32(Window win, Atom prop, Atom type, + gulong *val, gulong num) +{ + XChangeProperty(cwmcc_display, win, prop, type, 32, PropModeReplace, + (guchar*)val, num); +} + +void cwmcc_prop_set_string_utf8(Window win, Atom prop, char *val) +{ + XChangeProperty(cwmcc_display, win, prop, CWMCC_ATOM(type, utf8), 8, + PropModeReplace, (guchar*)val, strlen(val)); +} + +void cwmcc_prop_set_strings_utf8(Window win, Atom prop, char **strs) { GString *str; guint i; @@ -205,7 +222,7 @@ void prop_set_strings_utf8(Window win, Atom prop, char **strs) PropModeReplace, (guchar*)str->str, str->len); } -void prop_erase(Window win, Atom prop) +void cwmcc_prop_erase(Window win, Atom prop) { XDeleteProperty(cwmcc_display, win, prop); }