]> git.madduck.net Git - etc/awesome.git/blobdiff - layout/uselesstile.lua

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:

quake: uncomment client.border
[etc/awesome.git] / layout / uselesstile.lua
index e48c85d4b9132f096de26a0a0b6985c5f1584505..ee3306067121bc5291f041dfdf4f6189bc972961 100644 (file)
@@ -37,7 +37,7 @@ end
 
 -- Find geometry for secondary windows column
 local function cut_column(wa, n, index)
 
 -- Find geometry for secondary windows column
 local function cut_column(wa, n, index)
-    local width = wa.width / n
+    local width = math.floor(wa.width / n)
     local area = { x = wa.x + (index - 1) * width, y = wa.y, width = width, height = wa.height }
 
     return area
     local area = { x = wa.x + (index - 1) * width, y = wa.y, width = width, height = wa.height }
 
     return area
@@ -45,7 +45,7 @@ end
 
 -- Find geometry for certain window in column
 local function cut_row(wa, factor, index, used)
 
 -- Find geometry for certain window in column
 local function cut_row(wa, factor, index, used)
-    local height = wa.height * factor.window[index] / factor.total
+    local height = math.floor(wa.height * factor.window[index] / factor.total)
     local area = { x = wa.x, y = wa.y + used, width = wa.width, height = height }
 
     return area
     local area = { x = wa.x, y = wa.y + used, width = wa.width, height = height }
 
     return area
@@ -85,6 +85,7 @@ local function tile_column(canvas, area, list, useless_gap, transformation, winf
 
     for i, c in ipairs(list) do
         local g = cut_row(area, factor, i, used)
 
     for i, c in ipairs(list) do
         local g = cut_row(area, factor, i, used)
+        if i == #list then g.height = area.height - used end
         used = used + g.height
 
         -- swap workarea dimensions
         used = used + g.height
 
         -- swap workarea dimensions
@@ -94,6 +95,7 @@ local function tile_column(canvas, area, list, useless_gap, transformation, winf
         -- useless gap and border correction
         size_correction(c, g, useless_gap)
 
         -- useless gap and border correction
         size_correction(c, g, useless_gap)
 
+
         c:geometry(g)
     end
 end
         c:geometry(g)
     end
 end
@@ -161,7 +163,7 @@ local function tile(p, orientation)
     local master_area = {
         x = wa.x,
         y = wa.y,
     local master_area = {
         x = wa.x,
         y = wa.y,
-        width  = nmaster > 0 and wa.width * mwfact or 0,
+        width  = nmaster > 0 and math.floor(wa.width * mwfact) or 0,
         height = wa.height
     }
 
         height = wa.height
     }
 
@@ -186,6 +188,7 @@ local function tile(p, orientation)
     local rows_min = math.floor(#cls_other / ncol)
 
     local client_index = 1
     local rows_min = math.floor(#cls_other / ncol)
 
     local client_index = 1
+    local used = 0
     for i = 1, ncol do
         local position = transformation.flip and ncol - i + 1 or i
         local rows = i <= last_small_column and rows_min or rows_min + 1
     for i = 1, ncol do
         local position = transformation.flip and ncol - i + 1 or i
         local rows = i <= last_small_column and rows_min or rows_min + 1
@@ -198,6 +201,8 @@ local function tile(p, orientation)
 
         -- and tile
         local column_area = cut_column(other_area, ncol, position)
 
         -- and tile
         local column_area = cut_column(other_area, ncol, position)
+        if i == ncol then column_area.width = other_area.width - used end
+        used = used + column_area.width
 
         if not data[i] then data[i] = {} end
         tile_column(wa, column_area, column, useless_gap, transformation, data[i])
 
         if not data[i] then data[i] = {} end
         tile_column(wa, column_area, column, useless_gap, transformation, data[i])