]> git.sur5r.net Git - i3/i3/commitdiff
Bugfix: Don’t raise clients in fullscreen mode, send correct position to clients...
authorMichael Stapelberg <michael+x200@stapelberg.de>
Fri, 8 May 2009 21:22:40 +0000 (23:22 +0200)
committerMichael Stapelberg <michael+x200@stapelberg.de>
Fri, 8 May 2009 21:23:47 +0000 (23:23 +0200)
This fixes #38 which only happened for clients which actively tried
to reconfigure themselves.

src/handlers.c
src/util.c

index 42de1351bfad2f81d491209bc4fbe71bcc25e2e0..ea1aab885403a16067856638ca8d65b18ae0d57e 100644 (file)
@@ -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;
index c3e45c51d7642eb2561cdf55fa14f9e59e59f981..6a4b5fa2b0858ab31b904bcfac0e8b58fe099d29 100644 (file)
@@ -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);