X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/a652b7065ab2b859199c31f194c4dba31d3d9182..c87a7be2ed35b95b254509dc3b107700b82b1ec3:/layout/centerfair.lua?pf=etc diff --git a/layout/centerfair.lua b/layout/centerfair.lua index e2ecb33..383bf9e 100644 --- a/layout/centerfair.lua +++ b/layout/centerfair.lua @@ -65,7 +65,6 @@ function centerfair.arrange(p) local num_x = centerfair.nmaster or tag.getnmaster(t) local ncol = centerfair.ncol or tag.getncol(t) if num_x <= 2 then num_x = 2 end - if num_x > #cls then num_x = #cls end local width = math.floor((wa.width-(num_x+1)*useless_gap) / num_x) @@ -79,7 +78,7 @@ function centerfair.arrange(p) g.height = wa.height - 2*useless_gap - 2 g.y = offset_y + global_border for i = 1, #cls do - g.x = offset_x + (i - 1) * (width + useless_gap + 2) + global_border + g.x = offset_x + (#cls - i) * (width + useless_gap + 2) + global_border cls[i]:geometry(g) end else @@ -91,14 +90,12 @@ function centerfair.arrange(p) -- Master client deserves a special treatement local g = {} - g.width = wa.width - (num_x - 1) * width - num_x * useless_gap + g.width = wa.width - (num_x - 1) * width - num_x * 2*useless_gap - 2 g.height = wa.height - 2*useless_gap - 2 g.x = offset_x + useless_gap + global_border g.y = offset_y + global_border - if cls[1] then - cls[1]:geometry(g) - end + cls[#cls]:geometry(g) -- Treat the other clients @@ -137,27 +134,27 @@ function centerfair.arrange(p) end -- Compute geometry of the other clients - local nclient = 2 + local nclient = #cls-1 -- we start with the 2nd client g.x = g.x + g.width+useless_gap + 2 g.width = width if useless_gap > 0 then - g.width = g.width - useless_gap/2 - 2 + g.width = g.width + useless_gap - 2 end for i = 1, (num_x-1) do to_remove = 2 g.height = math.floor((wa.height - (num_y[i] * useless_gap)) / num_y[i]) g.y = offset_y + global_border - for j = 0, (num_y[i]-2) do + for j = 1, (num_y[i]-1) do cls[nclient]:geometry(g) - nclient = nclient + 1 + nclient = nclient - 1 g.y = g.y + g.height+useless_gap + 2 to_remove = to_remove + 2 end g.height = wa.height - num_y[i]*useless_gap - (num_y[i]-1)*g.height - useless_gap - to_remove cls[nclient]:geometry(g) - nclient = nclient + 1 + nclient = nclient - 1 g.x = g.x+g.width+useless_gap + 2 end end