From eea086632d60ee59674baf251604ae3a11ef1ab0 Mon Sep 17 00:00:00 2001 From: Ivan Kanakarakis Date: Fri, 30 Dec 2011 20:38:50 +0200 Subject: fix a memory leak on maprequest() function for XClassHint --- monsterwm.c | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) (limited to 'monsterwm.c') diff --git a/monsterwm.c b/monsterwm.c index 390c91e..1377616 100644 --- a/monsterwm.c +++ b/monsterwm.c @@ -174,8 +174,7 @@ void change_desktop(const Arg *arg) { previous_desktop = current_desktop; /* save current desktop settings and unmap windows */ save_desktop(current_desktop); - for (client *c=head; c; c=c->next) - XUnmapWindow(dis, c->win); + for (client *c=head; c; c=c->next) XUnmapWindow(dis, c->win); /* read new desktop properties, tile and map new windows */ select_desktop(arg->i); tile(); @@ -344,30 +343,28 @@ void maprequest(XEvent *e) { Window trans; Bool follow = False, winistrans = XGetTransientForHint(dis, ev->window, &trans) && trans; - int cd = current_desktop, nd = current_desktop; + int cd = current_desktop, newdsk = current_desktop; XClassHint ch = {0, 0}; if (!winistrans && XGetClassHint(dis, ev->window, &ch)) - for (unsigned int i=0; iwindow); select_desktop(cd); - if (cd == nd) { + if (cd == newdsk) { if (!winistrans) tile(); XMapWindow(dis, ev->window); update_current(); - } - if (follow) change_desktop(&(Arg){.i = nd}); + } else if (follow) change_desktop(&(Arg){.i = newdsk}); desktopinfo(); } -- cgit v1.3.1