X-Git-Url: https://git.sur5r.net/?p=i3%2Fi3;a=blobdiff_plain;f=src%2Frender.c;h=3150fb58fd5cdfae3fad3c249a5f7e632c0e0493;hp=dafccbb1d9c7299f16050497723728abe667879c;hb=HEAD;hpb=9a53d65e1886034fdb059e47febc59cbf1e41d51 diff --git a/src/render.c b/src/render.c index dafccbb1..3150fb58 100644 --- a/src/render.c +++ b/src/render.c @@ -234,25 +234,22 @@ static void render_root(Con *con, Con *fullscreen) { continue; } Con *workspace = TAILQ_FIRST(&(content->focus_head)); - Con *fullscreen = con_get_fullscreen_con(workspace, CF_OUTPUT); + Con *fullscreen = con_get_fullscreen_covering_ws(workspace); Con *child; TAILQ_FOREACH(child, &(workspace->floating_head), floating_windows) { - /* Don’t render floating windows when there is a fullscreen window - * on that workspace. Necessary to make floating fullscreen work - * correctly (ticket #564). */ - /* If there is no fullscreen->window, this cannot be a - * transient window, so we _know_ we need to skip it. This - * happens during restarts where the container already exists, - * but the window was not yet associated. */ - if (fullscreen != NULL && fullscreen->window == NULL) - continue; - if (fullscreen != NULL && fullscreen->window != NULL) { + if (fullscreen != NULL) { + /* Don’t render floating windows when there is a fullscreen + * window on that workspace. Necessary to make floating + * fullscreen work correctly (ticket #564). Exception to the + * above rule: smart popup_during_fullscreen handling (popups + * belonging to the fullscreen app will be rendered). */ + if (config.popup_during_fullscreen != PDF_SMART || fullscreen->window == NULL) { + continue; + } + Con *floating_child = con_descend_focused(child); Con *transient_con = floating_child; bool is_transient_for = false; - /* Exception to the above rule: smart - * popup_during_fullscreen handling (popups belonging to - * the fullscreen app will be rendered). */ while (transient_con != NULL && transient_con->window != NULL && transient_con->window->transient_for != XCB_NONE) {