]> git.sur5r.net Git - i3/i3/commitdiff
Merge branch 'master' into next
authorMichael Stapelberg <michael@stapelberg.de>
Mon, 21 Nov 2011 23:10:09 +0000 (23:10 +0000)
committerMichael Stapelberg <michael@stapelberg.de>
Mon, 21 Nov 2011 23:10:09 +0000 (23:10 +0000)
1  2 
src/render.c

diff --combined src/render.c
index ed78895ee3bd560c418d0dea4535f4a125d1f1ef,2905356c9d29a6f7c846c73123a02f532166ca5c..759c351fefe9364f5e50c719958d080531a6d4b9
@@@ -193,9 -193,7 +193,9 @@@ void render_con(Con *con, bool render_f
      }
  
      /* find the height for the decorations */
 -    int deco_height = config.font.height + 5;
 +    int deco_height = config.font.height + 4;
 +    if (config.font.height & 0x01)
 +        ++deco_height;
  
      /* precalculate the sizes to be able to correct rounding errors */
      int sizes[children];
              Con *content = output_get_content(output);
              Con *workspace = TAILQ_FIRST(&(content->focus_head));
  
+             /* Check for (floating!) fullscreen nodes */
+             /* XXX: This code duplication is unfortunate. Keep in mind to fix
+              * this when we clean up the whole render.c */
+             Con *fullscreen = NULL;
+             fullscreen = con_get_fullscreen_con(workspace, CF_OUTPUT);
+             if (fullscreen) {
+                 /* Either the fullscreen window is inside the floating
+                  * container, then we need to render and raise it now… */
+                 if (con_inside_floating(fullscreen)) {
+                     fullscreen->rect = output->rect;
+                     x_raise_con(fullscreen);
+                     render_con(fullscreen, true);
+                     continue;
+                 } else {
+                     /* …or it’s a tiling window, in which case the floating
+                      * windows should not overlap it, so we skip rendering this
+                      * output. */
+                     continue;
+                 }
+             }
              Con *child;
              TAILQ_FOREACH(child, &(workspace->floating_head), floating_windows) {
                  DLOG("floating child at (%d,%d) with %d x %d\n", child->rect.x, child->rect.y, child->rect.width, child->rect.height);