madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

Applied border adjustment changes to cascade and termfair, updated termfair to apply...
authorJosh Timmer <0ohexxo0@gmail.com>
Tue, 1 Sep 2015 03:14:56 +0000 (23:14 -0400)
committerJosh Timmer <0ohexxo0@gmail.com>
Tue, 1 Sep 2015 03:14:56 +0000 (23:14 -0400)
layout/cascade.lua
layout/termfair.lua

index 999c599efeb6042391c7a00499bd1568f37604e6..a7c0032c6809310ceab0ddf3e879fae7c12cc023 100644 (file)
@@ -28,15 +28,12 @@ function cascade.arrange(p)
     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
-
     -- Screen.
     local wa = p.workarea
     local cls = p.clients
 
-    wa.height = wa.height - ((global_border * 2) + (bw * 2))
-    wa.width = wa.width - ((global_border * 2) + (bw * 2))
+    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
 
@@ -70,8 +67,8 @@ 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
 
         c:geometry(g)
     end
index 4e45eec3cd55c91b9de683bd752ff091db2fbffe..187cb465b6b832e15c8daa6f23eb08fa6da139df 100644 (file)
@@ -46,16 +46,13 @@ function termfair.arrange(p)
     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
-
     -- Screen.
     local wa = p.workarea
     local cls = p.clients
 
     -- Borders are factored in.
-    wa.height = wa.height - ((global_border * 2) + (bw * 2))
-    wa.width = wa.width - ((global_border * 2) + (bw * 2))
+    wa.height = wa.height - (global_border * 2)
+    wa.width = wa.width - (global_border * 2)
 
     -- How many vertical columns?
     local t = tag.selected(p.screen)
@@ -71,8 +68,8 @@ function termfair.arrange(p)
         local at_x = 0
         local at_y = 0
         local remaining_clients = #cls
-        local width = math.floor(wa.width / num_x)
-        local height = math.floor(wa.height / num_y)
+        local width = math.floor((wa.width - (num_x + 1)*useless_gap) / num_x)
+        local height = math.floor((wa.height - (num_y + 1)*useless_gap) / num_y)
 
         -- We start the first row. Left-align by limiting the number of
         -- available slots.
@@ -93,25 +90,25 @@ function termfair.arrange(p)
             local g = {}
             if this_x == (num_x - 1)
             then
-                g.width = wa.width - (num_x - 1) * width - useless_gap
+                g.width = wa.width - (num_x - 1)*width - (num_x + 1)*useless_gap - 2*c.border_width
             else
-                g.width = width - useless_gap
+                g.width = width - 2*c.border_width
             end
             if this_y == (num_y - 1)
             then
-                g.height = wa.height - (num_y - 1) * height - useless_gap
+                g.height = wa.height - (num_y - 1)*height - (num_y + 1)*useless_gap - 2*c.border_width
             else
-                g.height = height - useless_gap
+                g.height = height - 2*c.border_width
             end
 
-            g.x = wa.x + this_x * width + global_border
-            g.y = wa.y + this_y * height + global_border
+            g.x = wa.x + this_x*width + global_border
+            g.y = wa.y + this_y*height + global_border
 
             if useless_gap > 0
             then
                 -- All clients tile evenly.
-                g.x = g.x + (useless_gap / 2)
-                g.y = g.y + (useless_gap / 2)
+                g.x = g.x + (this_x + 1)*useless_gap
+                g.y = g.y + (this_y + 1)*useless_gap
 
             end
             c:geometry(g)