From: Michael Stapelberg Date: Thu, 26 Feb 2009 00:10:41 +0000 (+0100) Subject: Bugfix: Unset fullscreen_client when closed X-Git-Tag: 3.a~147 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=aea8cb9c25e7da9cccb22eb6da7fa7c37f6da50b;p=i3%2Fi3 Bugfix: Unset fullscreen_client when closed --- diff --git a/src/handlers.c b/src/handlers.c index d058b650..6303bb91 100644 --- a/src/handlers.c +++ b/src/handlers.c @@ -336,9 +336,19 @@ int handle_unmap_notify_event(void *data, xcb_connection_t *c, xcb_unmap_notify_ Client *to_focus = CIRCLEQ_NEXT_OR_NULL(&(client->container->clients), client, clients); if (to_focus == NULL) to_focus = CIRCLEQ_PREV_OR_NULL(&(client->container->clients), client, clients); + + /* Set focus in data structure to the next/previous window, if any (else NULL) */ if (client->container->currently_focused == client) client->container->currently_focused = to_focus; + + /* If this was the fullscreen client, we need to unset it */ + if (client->container->workspace->fullscreen_client == client) + client->container->workspace->fullscreen_client = NULL; + + /* Remove the client from the list of clients */ CIRCLEQ_REMOVE(&(client->container->clients), client, clients); + + /* Actually set focus, if there is a window which should get it */ if (to_focus != NULL) set_focus(c, to_focus); }