X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/046b0279b0f3eb827bcc2b2e395e6ea69c019733..6c40d0ffc7b154e12ce60a0ff52c5b84d142e805:/layout/cascade.lua diff --git a/layout/cascade.lua b/layout/cascade.lua index cabacef..3d7598b 100644 --- a/layout/cascade.lua +++ b/layout/cascade.lua @@ -2,12 +2,14 @@ --[[ Licensed under GNU General Public License v2 + * (c) 2014, projektile * (c) 2013, Luke Bonham * (c) 2010-2012, Peter Hofmann --]] -local tag = require("awful.tag") +local tag = require("awful.tag") +local beautiful = require("beautiful") local cascade = { @@ -21,10 +23,20 @@ function cascade.arrange(p) -- Cascade windows. + -- 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 + -- Screen. local wa = p.workarea local cls = p.clients + wa.height = wa.height - (global_border * 2) + wa.width = wa.width - (global_border * 2) + wa.x = wa.x + global_border + wa.y = wa.y + global_border + -- Opening a new window will usually force all existing windows to -- get resized. This wastes a lot of CPU time. So let's set a lower -- bound to "how_many": This wastes a little screen space but you'll @@ -55,8 +67,10 @@ function cascade.arrange(p) g.x = wa.x + (how_many - i) * cascade.offset_x g.y = wa.y + (i - 1) * cascade.offset_y - g.width = wa.width - current_offset_x - g.height = wa.height - current_offset_y + g.width = wa.width - current_offset_x - 2*c.border_width + g.height = wa.height - current_offset_y - 2*c.border_width + if g.width < 1 then g.width = 1 end + if g.height < 1 then g.height = 1 end c:geometry(g) end