From 983a6795375d1c49da55e7bfc5e90dfb34bc03b3 Mon Sep 17 00:00:00 2001
From: Michael Stapelberg <michael@stapelberg.de>
Date: Sat, 17 Sep 2011 14:10:35 +0100
Subject: [PATCH] Bugfix: Honor the X11 window border when calculating
 dimensions for floating windows

---
 src/floating.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/floating.c b/src/floating.c
index 15ff23fc..8d3ce4e2 100644
--- a/src/floating.c
+++ b/src/floating.c
@@ -103,6 +103,7 @@ void floating_enable(Con *con, bool automatic) {
     int deco_height = config.font.height + 5;
 
     DLOG("Original rect: (%d, %d) with %d x %d\n", con->rect.x, con->rect.y, con->rect.width, con->rect.height);
+    DLOG("Geometry = (%d, %d) with %d x %d\n", con->geometry.x, con->geometry.y, con->geometry.width, con->geometry.height);
     Rect zero = { 0, 0, 0, 0 };
     nc->rect = con->geometry;
     /* If the geometry was not set (split containers), we need to determine a
@@ -125,6 +126,10 @@ void floating_enable(Con *con, bool automatic) {
     nc->rect.height += deco_height + 2;
     nc->rect.width += 4;
 
+    /* Honor the X11 border */
+    nc->rect.height += con->border_width * 2;
+    nc->rect.width += con->border_width * 2;
+
     /* Some clients (like GIMP’s color picker window) get mapped
      * to (0, 0), so we push them to a reasonable position
      * (centered over their leader) */