From: Michael Stapelberg Date: Fri, 8 May 2009 21:22:40 +0000 (+0200) Subject: Bugfix: Don’t raise clients in fullscreen mode, send correct position to clients... X-Git-Tag: 3.c~95 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=8c6c4270a9dc6cfb8e9767e790507e23c91b5654;p=i3%2Fi3 Bugfix: Don’t raise clients in fullscreen mode, send correct position to clients in fullscreen mode (Thanks ch3ka, mist) This fixes #38 which only happened for clients which actively tried to reconfigure themselves. --- 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);