]> git.sur5r.net Git - i3/i3/commitdiff
Don't draw stacked decors overlapping a fs window.
authorFernando Tarlá Cardoso Lemos <fernandotcl@gmail.com>
Sun, 18 Jul 2010 00:40:42 +0000 (21:40 -0300)
committerMichael Stapelberg <michael@stapelberg.de>
Tue, 20 Jul 2010 20:19:38 +0000 (22:19 +0200)
When both a fullscreen window and a floating window existed at the same time,
we used to configure stack_win as a sibling of the floating window. Now we
first check if a fullscreen window exists so that the decorations are always
behind it.

src/layout.c

index 76343aa008001e62f70d544d0d5d065ec139c22e..3c7d2ff4dfc37e474b29d2ee36ef0276ef639cb7 100644 (file)
@@ -454,12 +454,12 @@ void render_container(xcb_connection_t *conn, Container *container) {
                         /* Raise the stack window, but keep it below the first floating client
                          * and below the fullscreen client (if any) */
                         Client *first_floating = TAILQ_FIRST(&(container->workspace->floating_clients));
-                        if (first_floating != TAILQ_END(&(container->workspace->floating_clients))) {
-                                mask |= XCB_CONFIG_WINDOW_SIBLING;
-                                values[4] = first_floating->frame;
-                        } else if (container->workspace->fullscreen_client != NULL) {
+                        if (container->workspace->fullscreen_client != NULL) {
                                 mask |= XCB_CONFIG_WINDOW_SIBLING;
                                 values[4] = container->workspace->fullscreen_client->frame;
+                        } else if (first_floating != TAILQ_END(&(container->workspace->floating_clients))) {
+                                mask |= XCB_CONFIG_WINDOW_SIBLING;
+                                values[4] = first_floating->frame;
                         }
 
                         xcb_configure_window(conn, stack_win->window, mask, values);