$OpenBSD: patch-src_render_c,v 1.7 2015/01/18 19:45:44 dcoppa Exp $

commit 8b96bb0298fd9555a7c87d807651c0094c469e76
Author: Michael Stapelberg <michael@stapelberg.de>
Date:   Sat Jan 17 18:19:15 2015 +0100

Bugfix: render floating windows during global fullscreen

--- src/render.c.orig	Sun Jun 15 12:12:43 2014
+++ src/render.c	Sun Jan 18 13:40:17 2015
@@ -210,7 +210,15 @@ void render_con(Con *con, bool render_fullscreen) {
         fullscreen->rect = rect;
         x_raise_con(fullscreen);
         render_con(fullscreen, true);
-        return;
+        /* Fullscreen containers are either global (underneath the CT_ROOT
+         * container) or per-output (underneath the CT_CONTENT container). For
+         * global fullscreen containers, we cannot abort rendering here yet,
+         * because the floating windows (with popup_during_fullscreen smart)
+         * have not yet been rendered (see the CT_ROOT code path below). See
+         * also http://bugs.i3wm.org/1393 */
+        if (con->type != CT_ROOT) {
+            return;
+        }
     }
 
     /* find the height for the decorations */
@@ -247,8 +255,10 @@ void render_con(Con *con, bool render_fullscreen) {
         render_l_output(con);
     } else if (con->type == CT_ROOT) {
         Con *output;
-        TAILQ_FOREACH (output, &(con->nodes_head), nodes) {
-            render_con(output, false);
+        if (!fullscreen) {
+            TAILQ_FOREACH (output, &(con->nodes_head), nodes) {
+                render_con(output, false);
+            }
         }
 
         /* We need to render floating windows after rendering all outputs’
