From: Ingo Bürk Date: Fri, 13 Jan 2017 17:28:29 +0000 (+0100) Subject: Free trayclient when removing it. (#2632) X-Git-Tag: 4.14~72 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=f7a0453543a43b3f5b0f603c7dfdf6cc1fd33808;p=i3%2Fi3 Free trayclient when removing it. (#2632) fixes #2619 --- diff --git a/i3bar/src/xcb.c b/i3bar/src/xcb.c index 2715e447..49c8de1c 100644 --- a/i3bar/src/xcb.c +++ b/i3bar/src/xcb.c @@ -870,11 +870,13 @@ static void handle_destroy_notify(xcb_destroy_notify_event_t *event) { DLOG("checking output %s\n", walk->name); trayclient *trayclient; TAILQ_FOREACH(trayclient, walk->trayclients, tailq) { - if (trayclient->win != event->window) + if (trayclient->win != event->window) { continue; + } DLOG("Removing tray client with window ID %08x\n", event->window); TAILQ_REMOVE(walk->trayclients, trayclient, tailq); + FREE(trayclient); /* Trigger an update, we now have more space for the statusline */ configure_trayclients(); @@ -1558,6 +1560,7 @@ void kick_tray_clients(i3_output *output) { /* We remove the trayclient right here. We might receive an UnmapNotify * event afterwards, but better safe than sorry. */ TAILQ_REMOVE(output->trayclients, trayclient, tailq); + FREE(trayclient); } /* Fake a DestroyNotify so that Qt re-adds tray icons.