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:
parent
ff64b0db59
commit
9c5a8d606c
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue