]> 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:22:40 +0000 (23:22 +0200)
This fixes #38 which only happened for clients which actively tried
to reconfigure themselves.

src/handlers.c
src/util.c

index 61d33135652e218be361c1c635fcbf415a31a5ac..b16bb7c9663fafef9d6d5f08cd11c779a9589a4b 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 2ac0beb56cddb9aa3fa3ea73492d0c038ea75ef6..d4203261eadaa55bf014db402b69bcfaeda0296f 100644 (file)
@@ -297,7 +297,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);