--[[
Licensed under GNU General Public License v2
- * (c) 2013, Luke Bonham
+ * (c) 2014 projektile
+ * (c) 2013 Luke Bonham
* (c) 2009 Donald Ephraim Curtis
* (c) 2008 Julien Danjolu
local tag = require("awful.tag")
local beautiful = require("beautiful")
local ipairs = ipairs
-local math = { floor = math.floor,
+local math = { floor = math.floor,
max = math.max,
min = math.min }
local tonumber = tonumber
local function tile_group(cls, wa, orientation, fact, group)
-- 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 height = "height"
end
-- make this more generic (not just width)
- available = wa[width] - (group.coord - wa[x])
+ --if for top
+ available = wa[width] - (group.coord - wa[x]) -- it's truly not here
-- find our total values
local total_fact = 0
end
total_fact = total_fact + fact[i]
end
- size = math.min(size, available)
-
+ size = math.min(size, (available - global_border))
local coord = wa[y]
local geom = {}
local used_size = 0
- local unused = wa[height]
+ local unused = wa[height] - (global_border * 2)
local stat_coord = wa[x]
--stat_coord = size
for c = group.first,group.last do
local i = c - group.first +1
- geom[width] = size
- geom[height] = math.floor(unused * fact[i] / total_fact)
- geom[x] = group.coord
- geom[y] = coord
+ geom[width] = size - global_border - (bw * 2)
+ geom[height] = math.floor(unused * fact[i] / total_fact) - (bw * 2)
+ geom[x] = group.coord + global_border + (useless_gap / 2)
+ geom[y] = coord + global_border + (useless_gap / 2)
coord = coord + geom[height]
unused = unused - geom[height]
end
if top then
- geom[height] = geom[height] - 2 * useless_gap
+ geom[height] = geom[height] - (2 * useless_gap)
geom[y] = geom[y] + useless_gap
else
geom[height] = geom[height] - useless_gap
end
if left then
- geom[width] = geom[width] - 2 * useless_gap
+ geom[width] = geom[width] - (2 * useless_gap)
geom[x] = geom[x] + useless_gap
else
geom[width] = geom[width] - useless_gap
end
for i = 1,ncol do
-- Try to get equal width among remaining columns
- local size = math.min( (wasize - (coord - wa[x])) / (ncol - i + 1) )
+ local size = math.min((wasize - (coord - wa[x])) / (ncol - i + 1)) --+ (global_border/(ncol))/(ncol+i^2)
local first = last + 1
last = last + math.floor((#cls - last)/(ncol - i + 1))
-- tile the column and update our current x coordinate
uselesstile.name = uselesstile.right.name
return uselesstile
+