]> git.sur5r.net Git - i3/i3/commitdiff
Merge branch 'master' into next
authorMichael Stapelberg <michael@stapelberg.de>
Sat, 26 Nov 2011 21:30:44 +0000 (21:30 +0000)
committerMichael Stapelberg <michael@stapelberg.de>
Sat, 26 Nov 2011 21:30:44 +0000 (21:30 +0000)
src/con.c

index 198f0594a01cb44f287512eff94126a9b585c781..8ecc2401d197a80417c4c0ae2f71f2a03489b72b 100644 (file)
--- a/src/con.c
+++ b/src/con.c
@@ -954,18 +954,13 @@ void con_set_border_style(Con *con, int border_style) {
     }
 
     /* For floating containers, we want to keep the position/size of the
-     * *window* itself. Since the window size is rendered based on the
-     * container which it is in, we first remove the border/decoration specific
-     * amount of pixels from parent->rect, change the border, then add the new
-     * border/decoration specific pixels. */
+     * *window* itself. We first add the border pixels to con->rect to make
+     * con->rect represent the absolute position of the window. Then, we change
+     * the border and subtract the new border pixels. Afterwards, we update
+     * parent->rect to contain con. */
     DLOG("This is a floating container\n");
 
-    /* Get current border/decoration pixel values. */
-    int deco_height =
-        (con->border_style == BS_NORMAL ? config.font.height + 5 : 0);
     Rect bsr = con_border_style_rect(con);
-    Con *parent = con->parent;
-
     con->rect.x += bsr.x;
     con->rect.y += bsr.y;
     con->rect.width += bsr.width;
@@ -974,13 +969,15 @@ void con_set_border_style(Con *con, int border_style) {
     /* Change the border style, get new border/decoration values. */
     con->border_style = border_style;
     bsr = con_border_style_rect(con);
-    deco_height = (con->border_style == BS_NORMAL ? config.font.height + 5 : 0);
+    int deco_height =
+        (con->border_style == BS_NORMAL ? config.font.height + 5 : 0);
 
     con->rect.x -= bsr.x;
     con->rect.y -= bsr.y;
     con->rect.width -= bsr.width;
     con->rect.height -= bsr.height;
 
+    Con *parent = con->parent;
     parent->rect.x = con->rect.x;
     parent->rect.y = con->rect.y - deco_height;
     parent->rect.width = con->rect.width;