From b3e69ed12a5c62b74501b9f375ddf742fb9fb44c Mon Sep 17 00:00:00 2001 From: Orestis Floros Date: Wed, 22 Aug 2018 03:40:51 +0300 Subject: [PATCH] render_root: fix popup_during_fullscreen logic The first issue is that there seems to be a typo: fullscreen->window should have been child->window. The corrected check is redundant since the while loop checks if the transient_con has a window. The second issue is that popup_during_fullscreen is never checked even though the behaviour should be exclusive to the "smart" option. --- src/render.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/src/render.c b/src/render.c index 0125b89d..f54094bb 100644 --- a/src/render.c +++ b/src/render.c @@ -235,22 +235,19 @@ static void render_root(Con *con, Con *fullscreen) { Con *fullscreen = con_get_fullscreen_con(workspace, CF_OUTPUT); 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) { + 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) { -- 2.39.5