X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/7a4d6f5ffa594603ef83bc8b0e9945d12e082490..33ee32b4d165fe1547c6d9846653e9d3f00cd2ad:/layout/cascadetile.lua

diff --git a/layout/cascadetile.lua b/layout/cascadetile.lua
index a94bbed..e9b9425 100644
--- a/layout/cascadetile.lua
+++ b/layout/cascadetile.lua
@@ -2,6 +2,7 @@
 --[[
                                                   
      Licensed under GNU General Public License v2 
+      * (c) 2014,      projektile                 
       * (c) 2013,      Luke Bonham                
       * (c) 2010-2012, Peter Hofmann              
                                                   
@@ -30,29 +31,36 @@ function cascadetile.arrange(p)
 
     -- It's a bit hard to demonstrate the behaviour with ASCII-images...
     --
-    --       (1)              (2)              (3)              (4)
-    --   +-----+---+      +-----+---+      +-----+---+      +-----+---+
-    --   |     |   |      |     |   |      |     |   |      |     | 4 |
-    --   |     |   |      |     | 2 |      |     | 3 |      |     |   |
-    --   |  1  |   |  ->  |  1  |   |  ->  |  1  |   |  ->  |  1  +---+
-    --   |     |   |      |     +---+      |     +---+      |     | 3 |
-    --   |     |   |      |     |   |      |     | 2 |      |     |---|
-    --   |     |   |      |     |   |      |     |---|      |     | 2 |
-    --   |     |   |      |     |   |      |     |   |      |     |---|
-    --   +-----+---+      +-----+---+      +-----+---+      +-----+---+
+    --         (1)                 (2)                 (3)                 (4)
+    --   +----------+---+    +----------+---+    +----------+---+    +----------+---+
+    --   |          |   |    |          | 3 |    |          | 4 |    |         +---+|
+    --   |          |   | -> |          |   | -> |         +---++ -> |        +---+|+
+    --   |  1       | 2 |    |  1      +---++    |  1      | 3 ||    |  1    +---+|+|
+    --   |          |   |    |         | 2 ||    |        +---++|    |      +---+|+ |
+    --   |          |   |    |         |   ||    |        | 2 | |    |      | 2 |+  |
+    --   +----------+---+    +---------+---++    +--------+---+-+    +------+---+---+
 
     -- 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
+    if useless_gap < 0 then useless_gap = 0 end
+
+    -- 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 = tag.selected(p.screen)
     local mwfact
@@ -112,8 +120,8 @@ function cascadetile.arrange(p)
         end
 
         g.height = wa.height
-        g.x = wa.x
-        g.y = wa.y
+        g.x = wa.x + global_border
+        g.y = wa.y + global_border
         if useless_gap > 0
         then
             -- Reduce width once and move window to the right. Reduce
@@ -142,7 +150,7 @@ function cascadetile.arrange(p)
                 g.width = slavewid - current_offset_x
                 g.height = wa.height - current_offset_y
                 g.x = wa.x + mainwid + (how_many - i) * cascadetile.offset_x
-                g.y = wa.y + (i - 1) * cascadetile.offset_y
+                g.y = wa.y + (i - 1) * cascadetile.offset_y + global_border
                 if useless_gap > 0
                 then
                     g.width = g.width - 2 * useless_gap