Client: Add _WMFS_ISFREE attributes to re-set the c->free attributes when reloading.

This commit is contained in:
Martin Duquesnoy 2009-04-23 22:17:27 +02:00
parent 1e1d14736f
commit 92156f050d
3 changed files with 14 additions and 1 deletions

View File

@ -703,6 +703,9 @@ client_update_attributes(Client *c)
XChangeProperty(dpy, c->win, ATOM("_WMFS_SCREEN"), XA_CARDINAL, 32,
PropModeReplace, (uchar*)&(c->screen), 1);
XChangeProperty(dpy, c->win, ATOM("_WMFS_ISFREE"), XA_CARDINAL, 32,
PropModeReplace, (uchar*)&(c->free), 1);
return;
}

View File

@ -678,6 +678,7 @@ uicb_togglefree(uicb_t cmd)
else
sel->ogeo = sel->geo;
client_update_attributes(sel);
tags[selscreen][seltag[selscreen]].layout.func(selscreen);

View File

@ -193,7 +193,7 @@ scan(void)
XWindowAttributes wa;
Window usl, usl2, *w = NULL;
Atom rt;
int rf, tag = -1, screen = -1;
int rf, tag = -1, screen = -1, free = -1;
ulong ir, il;
uchar *ret;
Client *c;
@ -218,12 +218,21 @@ scan(void)
XFree(ret);
}
if(XGetWindowProperty(dpy, w[i], ATOM("_WMFS_ISFREE"), 0, 32,
False, XA_CARDINAL, &rt, &rf, &ir, &il, &ret) == Success && ret)
{
free = *ret;
XFree(ret);
}
c = client_manage(w[i], &wa, False);
if(tag != -1)
c->tag = tag;
if(screen != -1 && screen <= screen_count() - 1)
c->screen = screen;
if(free != -1)
c->free = free;
client_update_attributes(c);
}