diff --git a/src/handlers.c b/src/handlers.c index 42de1351..ea1aab88 100644 --- a/src/handlers.c +++ b/src/handlers.c @@ -590,6 +590,16 @@ int handle_configure_request(void *prophs, xcb_connection_t *conn, xcb_configure return 1; } + if (client->fullscreen) { + LOG("Client is in fullscreen mode\n"); + + Rect child_rect = client->container->workspace->rect; + child_rect.x = child_rect.y = 0; + fake_configure_notify(conn, child_rect, client->child); + + return 1; + } + fake_absolute_configure_notify(conn, client); return 1; diff --git a/src/util.c b/src/util.c index c3e45c51..6a4b5fa2 100644 --- a/src/util.c +++ b/src/util.c @@ -295,7 +295,7 @@ void set_focus(xcb_connection_t *conn, Client *client, bool set_anyways) { Client *last_focused = get_last_focused_client(conn, client->container, NULL); /* In stacking containers, raise the client in respect to the one which was focused before */ - if (client->container->mode == MODE_STACK) { + if (client->container->mode == MODE_STACK && client->container->workspace->fullscreen_client == NULL) { /* We need to get the client again, this time excluding the current client, because * we might have just gone into stacking mode and need to raise */ Client *last_focused = get_last_focused_client(conn, client->container, client);