X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=cwmcc%2Fprop.c;h=6e9e08126c976d4b72f7ab7725a969a566ef0478;hb=23697223a5f7242767c7959158f314f50887985c;hp=1c6ab8cc930c06152c592311d0b9704473032774;hpb=f317ceeaf28bc656e59a0f089ac11818ca5e8bd3;p=chaz%2Fopenbox diff --git a/cwmcc/prop.c b/cwmcc/prop.c index 1c6ab8cc..6e9e0812 100644 --- a/cwmcc/prop.c +++ b/cwmcc/prop.c @@ -3,9 +3,7 @@ #include #include -#ifdef HAVE_STRING_H -# include -#endif +#include /* this just isn't used... static gboolean get(Window win, Atom prop, Atom type, int size, @@ -86,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; } @@ -110,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; @@ -134,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; @@ -147,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; @@ -167,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; @@ -193,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; @@ -207,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); }