X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/00a2951166f61cbbfe1d6e042fe0e53427c001cd..a23bd7d49bce2e04dba9f31b6c5d47c0cd36b428:/layout/centerwork.lua

diff --git a/layout/centerwork.lua b/layout/centerwork.lua
index 2035c65..61f4907 100644
--- a/layout/centerwork.lua
+++ b/layout/centerwork.lua
@@ -2,6 +2,7 @@
 --[[
                                                   
      Licensed under GNU General Public License v2 
+      * (c) 2014,      projektile                 
       * (c) 2013,      Luke Bonham                
       * (c) 2010-2012, Peter Hofmann              
                                                   
@@ -24,16 +25,24 @@ local centerwork =
 function centerwork.arrange(p)
     -- A useless gap (like the dwm patch) can be defined with
     -- beautiful.useless_gap_width .
-    local useless_gap = tonumber(beautiful.useless_gap_width)
-    if useless_gap == nil
-    then
-        useless_gap = 0
-    end
+    local useless_gap = tonumber(beautiful.useless_gap_width) or 0
+
+    -- A global border can be defined with
+    -- beautiful.global_border_width
+    local global_border = tonumber(beautiful.global_border_width) or 0
+    if global_border < 0 then global_border = 0 end
+
+    -- Themes border width requires an offset
+    local bw = tonumber(beautiful.border_width) or 0
 
     -- Screen.
     local wa = p.workarea
     local cls = p.clients
 
+    -- Borders are factored in.
+    wa.height = wa.height - ((global_border * 2) + (bw * 2))
+    wa.width = wa.width - ((global_border * 2) + (bw * 2))
+
     -- Width of main column?
     local t = awful.tag.selected(p.screen)
     local mwfact = awful.tag.getmwfact(t)
@@ -52,8 +61,8 @@ function centerwork.arrange(p)
 
         g.height = wa.height - 2 * useless_gap
         g.width = mainwid
-        g.x = wa.x + slaveLwid
-        g.y = wa.y + useless_gap
+        g.x = wa.x + slaveLwid + global_border
+        g.y = wa.y + useless_gap + global_border
 
         c:geometry(g)
 
@@ -77,29 +86,29 @@ function centerwork.arrange(p)
                 if at == centerwork.top_left
                 then
                     -- top left
-                    g.x = wa.x + useless_gap
-                    g.y = wa.y + useless_gap
+                    g.x = wa.x + useless_gap + global_border
+                    g.y = wa.y + useless_gap + global_border
                     g.width = slaveLwid - 2 * useless_gap
                     g.height = slaveThei - useless_gap
                 elseif at == centerwork.top_right
                 then
                     -- top right
-                    g.x = wa.x + slaveLwid + mainwid + useless_gap
-                    g.y = wa.y + useless_gap
+                    g.x = wa.x + slaveLwid + mainwid + useless_gap + global_border
+                    g.y = wa.y + useless_gap + global_border
                     g.width = slaveRwid - 2 * useless_gap
                     g.height = slaveThei - useless_gap
                 elseif at == centerwork.bottom_left
                 then
                     -- bottom left
-                    g.x = wa.x + useless_gap
-                    g.y = wa.y + slaveThei + useless_gap
+                    g.x = wa.x + useless_gap + global_border
+                    g.y = wa.y + slaveThei + useless_gap + global_border
                     g.width = slaveLwid - 2 * useless_gap
                     g.height = slaveBhei - 2 * useless_gap
                 elseif at == centerwork.bottom_right
                 then
                     -- bottom right
-                    g.x = wa.x + slaveLwid + mainwid + useless_gap
-                    g.y = wa.y + slaveThei + useless_gap
+                    g.x = wa.x + slaveLwid + mainwid + useless_gap + global_border
+                    g.y = wa.y + slaveThei + useless_gap + global_border
                     g.width = slaveRwid - 2 * useless_gap
                     g.height = slaveBhei - 2 * useless_gap
                 end