]> git.madduck.net Git - etc/awesome.git/commitdiff

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:

Fixed sizing/spacing issues in cascadetile and centerwork
authorJosh Timmer <0ohexxo0@gmail.com>
Mon, 31 Aug 2015 07:13:28 +0000 (03:13 -0400)
committerJosh Timmer <0ohexxo0@gmail.com>
Mon, 31 Aug 2015 07:13:28 +0000 (03:13 -0400)
layout/cascadetile.lua
layout/centerwork.lua

index 2ec097494319cac3c921b0a6bd9892e8ccbe80ed..8e8abb4cc28c3c74a8940c2a508fd90df5a72c3f 100644 (file)
@@ -58,8 +58,8 @@ function cascadetile.arrange(p)
     local cls = p.clients
 
     -- Borders are factored in.
     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)
 
     -- Width of main column?
     local t = tag.selected(p.screen)
 
     -- Width of main column?
     local t = tag.selected(p.screen)
@@ -102,12 +102,16 @@ function cascadetile.arrange(p)
         -- Main column, fixed width and height.
         local c = cls[1]
         local g = {}
         -- Main column, fixed width and height.
         local c = cls[1]
         local g = {}
-        local mainwid = wa.width * mwfact
+        -- Subtracting the useless_gap width from the work area width here
+        -- makes this mwfact calculation work the same as in uselesstile.
+        -- Explicitly rounding is necessary to prevent the rendered size of
+        -- slavewid from changing depending on whether we round up or down.
+        local mainwid = math.floor((wa.width - useless_gap) * mwfact)
         local slavewid = wa.width - mainwid
 
         if overlap_main == 1
         then
         local slavewid = wa.width - mainwid
 
         if overlap_main == 1
         then
-            g.width = wa.width
+            g.width = wa.width - 2*bw
 
             -- The size of the main window may be reduced a little bit.
             -- This allows you to see if there are any windows below the
 
             -- The size of the main window may be reduced a little bit.
             -- This allows you to see if there are any windows below the
@@ -116,10 +120,10 @@ function cascadetile.arrange(p)
             -- overlapping everything else.
             g.width = g.width - cascadetile.extra_padding
         else
             -- overlapping everything else.
             g.width = g.width - cascadetile.extra_padding
         else
-            g.width = mainwid
+            g.width = mainwid - 2*bw
         end
 
         end
 
-        g.height = wa.height
+        g.height = wa.height - 2*bw
         g.x = wa.x + global_border
         g.y = wa.y + global_border
         if useless_gap > 0
         g.x = wa.x + global_border
         g.y = wa.y + global_border
         if useless_gap > 0
@@ -143,13 +147,13 @@ function cascadetile.arrange(p)
         -- Remaining clients stacked in slave column, new ones on top.
         if #cls > 1
         then
         -- Remaining clients stacked in slave column, new ones on top.
         if #cls > 1
         then
-            for i = (#cls),2,-1
+            for i = 2,#cls
             do
                 c = cls[i]
                 g = {}
             do
                 c = cls[i]
                 g = {}
-                g.width = slavewid - current_offset_x
-                g.height = wa.height - current_offset_y
-                g.x = wa.x + mainwid + (how_many - i) * cascadetile.offset_x
+                g.width = slavewid - current_offset_x - 2*bw
+                g.height = wa.height - current_offset_y -2*bw
+                g.x = wa.x + mainwid + (how_many - (i - 1)) * cascadetile.offset_x
                 g.y = wa.y + (i - 2) * cascadetile.offset_y + global_border
                 if useless_gap > 0
                 then
                 g.y = wa.y + (i - 2) * cascadetile.offset_y + global_border
                 if useless_gap > 0
                 then
index 154b87dedb5ff5143b349e2cdd80be08d2548466..1f07a7c01053ad25136ecdf190fa555f9656a1c9 100644 (file)
@@ -40,8 +40,8 @@ function centerwork.arrange(p)
     local cls = p.clients
 
     -- Borders are factored in.
     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)
 
     -- Width of main column?
     local t = awful.tag.selected(p.screen)
 
     -- Width of main column?
     local t = awful.tag.selected(p.screen)
@@ -59,8 +59,8 @@ function centerwork.arrange(p)
         local slaveThei = math.floor(wa.height / 2)
         local slaveBhei = wa.height - slaveThei
 
         local slaveThei = math.floor(wa.height / 2)
         local slaveBhei = wa.height - slaveThei
 
-        g.height = wa.height - 2 * useless_gap
-        g.width = mainwid
+        g.height = wa.height - 2*useless_gap - 2*bw
+        g.width = mainwid - 2*bw
         g.x = wa.x + slaveLwid + global_border
         g.y = wa.y + useless_gap + global_border
 
         g.x = wa.x + slaveLwid + global_border
         g.y = wa.y + useless_gap + global_border
 
@@ -70,7 +70,7 @@ function centerwork.arrange(p)
         if #cls > 1
         then
             local at = 0
         if #cls > 1
         then
             local at = 0
-            for i = (#cls),2,-1
+            for i = 2,#cls
             do
                 -- It's all fixed. If there are more than 5 clients,
                 -- those additional clients will float. This is
             do
                 -- It's all fixed. If there are more than 5 clients,
                 -- those additional clients will float. This is
@@ -88,29 +88,29 @@ function centerwork.arrange(p)
                     -- top left
                     g.x = wa.x + useless_gap + global_border
                     g.y = wa.y + useless_gap + global_border
                     -- top left
                     g.x = wa.x + useless_gap + global_border
                     g.y = wa.y + useless_gap + global_border
-                    g.width = slaveLwid - 2 * useless_gap
-                    g.height = slaveThei - useless_gap
+                    g.width = slaveLwid - 2*useless_gap - 2*bw
+                    g.height = slaveThei - useless_gap - 2*bw
                 elseif i - 2 == centerwork.top_right
                 then
                     -- top right
                     g.x = wa.x + slaveLwid + mainwid + useless_gap + global_border
                     g.y = wa.y + useless_gap + global_border
                 elseif i - 2 == centerwork.top_right
                 then
                     -- top right
                     g.x = wa.x + slaveLwid + mainwid + useless_gap + global_border
                     g.y = wa.y + useless_gap + global_border
-                    g.width = slaveRwid - 2 * useless_gap
-                    g.height = slaveThei - useless_gap
+                    g.width = slaveRwid - 2*useless_gap - 2*bw
+                    g.height = slaveThei - useless_gap - 2*bw
                 elseif i - 2 == centerwork.bottom_left
                 then
                     -- bottom left
                     g.x = wa.x + useless_gap + global_border
                     g.y = wa.y + slaveThei + useless_gap + global_border
                 elseif i - 2 == centerwork.bottom_left
                 then
                     -- bottom left
                     g.x = wa.x + useless_gap + global_border
                     g.y = wa.y + slaveThei + useless_gap + global_border
-                    g.width = slaveLwid - 2 * useless_gap
-                    g.height = slaveBhei - 2 * useless_gap
+                    g.width = slaveLwid - 2*useless_gap - 2*bw
+                    g.height = slaveBhei - 2*useless_gap - 2*bw
                 elseif i - 2 == centerwork.bottom_right
                 then
                     -- bottom right
                     g.x = wa.x + slaveLwid + mainwid + useless_gap + global_border
                     g.y = wa.y + slaveThei + useless_gap + global_border
                 elseif i - 2 == centerwork.bottom_right
                 then
                     -- bottom right
                     g.x = wa.x + slaveLwid + mainwid + useless_gap + global_border
                     g.y = wa.y + slaveThei + useless_gap + global_border
-                    g.width = slaveRwid - 2 * useless_gap
-                    g.height = slaveBhei - 2 * useless_gap
+                    g.width = slaveRwid - 2*useless_gap - 2*bw
+                    g.height = slaveBhei - 2*useless_gap - 2*bw
                 end
 
                 c:geometry(g)
                 end
 
                 c:geometry(g)