Client: Add _WMFS_ISFREE attributes to re-set the c->free attributes when reloading.
This commit is contained in:
parent
1e1d14736f
commit
92156f050d
@ -703,6 +703,9 @@ client_update_attributes(Client *c)
|
|||||||
XChangeProperty(dpy, c->win, ATOM("_WMFS_SCREEN"), XA_CARDINAL, 32,
|
XChangeProperty(dpy, c->win, ATOM("_WMFS_SCREEN"), XA_CARDINAL, 32,
|
||||||
PropModeReplace, (uchar*)&(c->screen), 1);
|
PropModeReplace, (uchar*)&(c->screen), 1);
|
||||||
|
|
||||||
|
XChangeProperty(dpy, c->win, ATOM("_WMFS_ISFREE"), XA_CARDINAL, 32,
|
||||||
|
PropModeReplace, (uchar*)&(c->free), 1);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -678,6 +678,7 @@ uicb_togglefree(uicb_t cmd)
|
|||||||
else
|
else
|
||||||
sel->ogeo = sel->geo;
|
sel->ogeo = sel->geo;
|
||||||
|
|
||||||
|
client_update_attributes(sel);
|
||||||
|
|
||||||
tags[selscreen][seltag[selscreen]].layout.func(selscreen);
|
tags[selscreen][seltag[selscreen]].layout.func(selscreen);
|
||||||
|
|
||||||
|
|||||||
11
src/wmfs.c
11
src/wmfs.c
@ -193,7 +193,7 @@ scan(void)
|
|||||||
XWindowAttributes wa;
|
XWindowAttributes wa;
|
||||||
Window usl, usl2, *w = NULL;
|
Window usl, usl2, *w = NULL;
|
||||||
Atom rt;
|
Atom rt;
|
||||||
int rf, tag = -1, screen = -1;
|
int rf, tag = -1, screen = -1, free = -1;
|
||||||
ulong ir, il;
|
ulong ir, il;
|
||||||
uchar *ret;
|
uchar *ret;
|
||||||
Client *c;
|
Client *c;
|
||||||
@ -218,12 +218,21 @@ scan(void)
|
|||||||
XFree(ret);
|
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);
|
c = client_manage(w[i], &wa, False);
|
||||||
|
|
||||||
if(tag != -1)
|
if(tag != -1)
|
||||||
c->tag = tag;
|
c->tag = tag;
|
||||||
if(screen != -1 && screen <= screen_count() - 1)
|
if(screen != -1 && screen <= screen_count() - 1)
|
||||||
c->screen = screen;
|
c->screen = screen;
|
||||||
|
if(free != -1)
|
||||||
|
c->free = free;
|
||||||
|
|
||||||
client_update_attributes(c);
|
client_update_attributes(c);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user