X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/00a2951166f61cbbfe1d6e042fe0e53427c001cd..1738f98c04158ecd7099ad15e97702818d793b2c:/layout/uselesspiral.lua?ds=sidebyside diff --git a/layout/uselesspiral.lua b/layout/uselesspiral.lua index 695728c..c388961 100644 --- a/layout/uselesspiral.lua +++ b/layout/uselesspiral.lua @@ -2,39 +2,50 @@ --[[ Licensed under GNU General Public License v2 - * (c) 2013, Luke Bonham - * (c) 2009 Uli Schlachter - * (c) 2008 Julien Danjolu + * (c) 2014, projektile + * (c) 2013, Luke Bonham + * (c) 2009, Uli Schlachter + * (c) 2008, Julien Danjolu --]] local beautiful = require("beautiful") local ipairs = ipairs local tonumber = tonumber +local math = require("math") local uselesspiral = {} local function spiral(p, spiral) -- 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 + + -- get our orientation right local wa = p.workarea local cls = p.clients - local n = #cls + local n = #cls -- number of windows total; k = which window number + + wa.height = wa.height - ((global_border * 2) + (bw * 2)) + wa.width = wa.width - ((global_border * 2) + (bw * 2)) local static_wa = wa for k, c in ipairs(cls) do if k < n then if k % 2 == 0 then - wa.height = wa.height / 2 + wa.height = (wa.height / 2) else - wa.width = wa.width / 2 + wa.width = (wa.width / 2) end end @@ -53,10 +64,10 @@ local function spiral(p, spiral) end local wa2 = {} - wa2.x = wa.x - wa2.y = wa.y - wa2.height = wa.height - wa2.width = wa.width + wa2.x = wa.x + (useless_gap / 2) + global_border + wa2.y = wa.y + (useless_gap / 2) + global_border + wa2.height = wa.height - (useless_gap / 2) + wa2.width = wa.width - (useless_gap / 2) -- Useless gap. if useless_gap > 0 @@ -69,26 +80,26 @@ local function spiral(p, spiral) left = false if wa2.y == static_wa.y then - top = true + top = true end if wa2.x == static_wa.x then - left = true + left = true end - if top then - wa2.height = wa2.height - 2 * useless_gap - wa2.y = wa2.y + useless_gap + if top then + wa2.height = wa2.height - useless_gap + wa2.y = wa2.y - (useless_gap / 2) else - wa2.height = wa2.height - useless_gap - end - - if left then - wa2.width = wa2.width - 2 * useless_gap - wa2.x = wa2.x + useless_gap - else - wa2.width = wa2.width - useless_gap - end + wa2.height = wa2.height - (useless_gap / 2) + end + + if left then + wa2.width = wa2.width - useless_gap + wa2.x = wa2.x - (useless_gap / 2) + else + wa2.width = wa2.width - (useless_gap / 2) + end end -- End of useless gap.