Window border width issue fixes in uselessfair

This commit is contained in:
worron 2015-01-05 23:31:52 +03:00 committed by copycat-killer
parent bb5204a722
commit 1f02db5e24
1 changed files with 21 additions and 34 deletions

View File

@ -30,12 +30,17 @@ local function fair(p, orientation)
-- Themes border width requires an offset. -- Themes border width requires an offset.
local bw = tonumber(beautiful.border_width) or 0 local bw = tonumber(beautiful.border_width) or 0
-- Total window size extend
local ext = 2 * bw + useless_gap
-- get our orientation right. -- get our orientation right.
local wa = p.workarea local wa = p.workarea
local cls = p.clients local cls = p.clients
wa.height = wa.height - ((global_border * 2) + (bw * 2)) wa.height = wa.height - 2 * global_border - useless_gap
wa.width = wa.width - ((global_border * 2) + (bw * 2)) wa.width = wa.width - 2 * global_border - useless_gap
wa.x = wa.x + useless_gap + global_border
wa.y = wa.y + useless_gap + global_border
if #cls > 0 then if #cls > 0 then
local cells = math.ceil(math.sqrt(#cls)) local cells = math.ceil(math.sqrt(#cls))
@ -45,10 +50,7 @@ local function fair(p, orientation)
local strip = 0 local strip = 0
for k, c in ipairs(cls) do for k, c in ipairs(cls) do
local g = {} local g = {}
-- Save actual grid index for use in the useless_gap
-- routine.
local this_x = 0
local this_y = 0
if ( orientation == "east" and #cls > 2 ) if ( orientation == "east" and #cls > 2 )
or ( orientation == "south" and #cls <= 2 ) then or ( orientation == "south" and #cls <= 2 ) then
if #cls < (strips * cells) and strip == strips - 1 then if #cls < (strips * cells) and strip == strips - 1 then
@ -58,11 +60,8 @@ local function fair(p, orientation)
end end
g.height = wa.height / strips g.height = wa.height / strips
this_x = cell g.x = wa.x + cell * g.width
this_y = strip g.y = wa.y + strip * g.height
g.x = wa.x + cell * g.width + global_border
g.y = wa.y + strip * g.height + global_border
else else
if #cls < (strips * cells) and strip == strips - 1 then if #cls < (strips * cells) and strip == strips - 1 then
@ -72,25 +71,13 @@ local function fair(p, orientation)
end end
g.width = wa.width / strips g.width = wa.width / strips
this_x = strip g.x = wa.x + strip * g.width
this_y = cell g.y = wa.y + cell * g.height
g.x = wa.x + strip * g.width + global_border
g.y = wa.y + cell * g.height + global_border
end end
-- Useless gap. g.width = g.width - ext
if useless_gap > 0 g.height = g.height - ext
then
-- All clients tile evenly.
g.width = g.width - useless_gap
g.x = g.x + (useless_gap / 2)
g.height = g.height - useless_gap
g.y = g.y + (useless_gap / 2)
end
-- End of useless gap.
c:geometry(g) c:geometry(g)