|
|
|
@ -185,15 +185,8 @@ Bool |
|
|
|
|
loadprops(Client *c) { |
|
|
|
|
unsigned int i; |
|
|
|
|
Bool result = False; |
|
|
|
|
XTextProperty name; |
|
|
|
|
|
|
|
|
|
/* check if window has set a property */ |
|
|
|
|
name.nitems = 0; |
|
|
|
|
XGetTextProperty(dpy, c->win, &name, dwmprops); |
|
|
|
|
if(name.nitems && name.encoding == XA_STRING) { |
|
|
|
|
strncpy(prop, (char *)name.value, sizeof prop - 1); |
|
|
|
|
prop[sizeof prop - 1] = '\0'; |
|
|
|
|
XFree(name.value); |
|
|
|
|
|
|
|
|
|
if(gettextprop(c->win, dwmprops, prop, sizeof prop)) { |
|
|
|
|
for(i = 0; i < ntags && i < sizeof prop - 1 && prop[i] != '\0'; i++) |
|
|
|
|
if((c->tags[i] = prop[i] == '1')) |
|
|
|
|
result = True; |
|
|
|
@ -424,27 +417,6 @@ updatesizehints(Client *c) { |
|
|
|
|
|
|
|
|
|
void |
|
|
|
|
updatetitle(Client *c) { |
|
|
|
|
char **list = NULL; |
|
|
|
|
int n; |
|
|
|
|
XTextProperty name; |
|
|
|
|
|
|
|
|
|
name.nitems = 0; |
|
|
|
|
c->name[0] = 0; |
|
|
|
|
XGetTextProperty(dpy, c->win, &name, netatom[NetWMName]); |
|
|
|
|
if(!name.nitems) |
|
|
|
|
XGetWMName(dpy, c->win, &name); |
|
|
|
|
if(!name.nitems) |
|
|
|
|
return; |
|
|
|
|
if(name.encoding == XA_STRING) |
|
|
|
|
strncpy(c->name, (char *)name.value, sizeof c->name - 1); |
|
|
|
|
else { |
|
|
|
|
if(XmbTextPropertyToTextList(dpy, &name, &list, &n) >= Success |
|
|
|
|
&& n > 0 && *list) |
|
|
|
|
{ |
|
|
|
|
strncpy(c->name, *list, sizeof c->name - 1); |
|
|
|
|
XFreeStringList(list); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
c->name[sizeof c->name - 1] = '\0'; |
|
|
|
|
XFree(name.value); |
|
|
|
|
if(!gettextprop(c->win, netatom[NetWMName], c->name, sizeof c->name)) |
|
|
|
|
gettextprop(c->win, wmatom[WMName], c->name, sizeof c->name); |
|
|
|
|
} |
|
|
|
|