X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/046b0279b0f3eb827bcc2b2e395e6ea69c019733..db253f9c550172a8331ee56d48f1c5ae4f59afb8:/layout/cascade.lua

diff --git a/layout/cascade.lua b/layout/cascade.lua
index cabacef..3d7598b 100644
--- a/layout/cascade.lua
+++ b/layout/cascade.lua
@@ -2,12 +2,14 @@
 --[[
                                                   
      Licensed under GNU General Public License v2 
+      * (c) 2014,      projektile                 
       * (c) 2013,      Luke Bonham                
       * (c) 2010-2012, Peter Hofmann              
                                                   
 --]]
 
-local tag = require("awful.tag")
+local tag       = require("awful.tag")
+local beautiful = require("beautiful")
 
 local cascade =
 {
@@ -21,10 +23,20 @@ function cascade.arrange(p)
 
     -- Cascade windows.
 
+    -- 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
+
     -- Screen.
     local wa = p.workarea
     local cls = p.clients
 
+    wa.height = wa.height - (global_border * 2)
+    wa.width = wa.width - (global_border * 2)
+    wa.x = wa.x + global_border
+    wa.y = wa.y + global_border
+
     -- Opening a new window will usually force all existing windows to
     -- get resized. This wastes a lot of CPU time. So let's set a lower
     -- bound to "how_many": This wastes a little screen space but you'll
@@ -55,8 +67,10 @@ function cascade.arrange(p)
 
         g.x = wa.x + (how_many - i) * cascade.offset_x
         g.y = wa.y + (i - 1) * cascade.offset_y
-        g.width = wa.width - current_offset_x
-        g.height = wa.height - current_offset_y
+        g.width = wa.width - current_offset_x - 2*c.border_width
+        g.height = wa.height - current_offset_y - 2*c.border_width
+        if g.width < 1 then g.width = 1 end
+        if g.height < 1 then g.height = 1 end
 
         c:geometry(g)
     end