wmii

git clone git://oldgit.suckless.org/wmii/
Log | Files | Refs | README | LICENSE

commit fde667e1aa3d41bcb88f69718626e419301b140e
parent 5e753ad1ce20b6d666cbe6ce28ba08cec84e3f27
Author: Kris Maglione <kris@suckless.org>
Date:   Sat, 23 Jan 2010 16:56:42 -0500

Remove destroyed clients from the save set. Closes issue #129.

Diffstat:
cmd/wmii/client.c | 9+++++++--
cmd/wmii/dat.h | 2+-
cmd/wmii/main.c | 1+
3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/cmd/wmii/client.c b/cmd/wmii/client.c @@ -293,12 +293,16 @@ client_destroy(Client *c) { else reparentwindow(&c->w, &scr.root, r.min); + if(starting > -1) + XRemoveFromSaveSet(display, c->w.xid); + traperrors(false); XUngrabServer(display); none = nil; client_setviews(c, &none); - client_unmap(c, WithdrawnState); + if(starting > -1) + client_unmap(c, WithdrawnState); refree(&c->tagre); refree(&c->tagvre); free(c->retags); @@ -307,7 +311,8 @@ client_destroy(Client *c) { ewmh_destroyclient(c); group_remove(c); - event("DestroyClient %C\n", c); + if(starting > -1) + event("DestroyClient %C\n", c); flushevents(FocusChangeMask, true); free(c->w.hints); diff --git a/cmd/wmii/dat.h b/cmd/wmii/dat.h @@ -385,7 +385,7 @@ typedef void (*XHandler)(XEvent*); EXTERN XHandler handler[LASTEvent]; /* Misc */ -EXTERN bool starting; +EXTERN int starting; EXTERN bool resizing; EXTERN long ignoreenter; EXTERN char* user; diff --git a/cmd/wmii/main.c b/cmd/wmii/main.c @@ -225,6 +225,7 @@ init_screens(void) { static void cleanup(void) { + starting = -1; while(client) client_destroy(client); ixp_server_close(&srv);