Don't draw stacked decors overlapping a fs window.

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.
This commit is contained in:
Fernando Tarlá Cardoso Lemos 2010-07-17 21:40:42 -03:00 committed by Michael Stapelberg
parent 935f950ce2
commit 20fc7681b1
1 changed files with 4 additions and 4 deletions

View 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 /* Raise the stack window, but keep it below the first floating client
* and below the fullscreen client (if any) */ * and below the fullscreen client (if any) */
Client *first_floating = TAILQ_FIRST(&(container->workspace->floating_clients)); Client *first_floating = TAILQ_FIRST(&(container->workspace->floating_clients));
if (first_floating != TAILQ_END(&(container->workspace->floating_clients))) { if (container->workspace->fullscreen_client != NULL) {
mask |= XCB_CONFIG_WINDOW_SIBLING;
values[4] = first_floating->frame;
} else if (container->workspace->fullscreen_client != NULL) {
mask |= XCB_CONFIG_WINDOW_SIBLING; mask |= XCB_CONFIG_WINDOW_SIBLING;
values[4] = container->workspace->fullscreen_client->frame; 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); xcb_configure_window(conn, stack_win->window, mask, values);