diff --git a/lib/awful/placement.lua b/lib/awful/placement.lua index c003d3f1f..0eb7825a5 100644 --- a/lib/awful/placement.lua +++ b/lib/awful/placement.lua @@ -278,6 +278,7 @@ local function store_geometry(d, reqtype) if not data[d][reqtype] then data[d][reqtype] = {} end data[d][reqtype] = d:geometry() data[d][reqtype].screen = d.screen + data[d][reqtype].border_width = d.border_width end --- Get the margins and offset @@ -1161,6 +1162,9 @@ function placement.restore(d, args) if not memento then return false end memento.screen = nil --TODO use it + + d.border_width = memento.border_width + d:geometry(memento) return true end diff --git a/tests/test-maximize.lua b/tests/test-maximize.lua index bddf693e3..d16c980e0 100644 --- a/tests/test-maximize.lua +++ b/tests/test-maximize.lua @@ -41,6 +41,24 @@ local steps = { c.maximized_horizontal = false return true end, + + -- Test restoring client.border_width + function() + local c = client.get()[1] + + -- pick an arbitrary border_width distinct from the default one + local test_width = c.border_width + 1 + + c.border_width = test_width + + c.fullscreen = true + c.fullscreen = false + + assert(c.border_width == test_width) + + return true + end, + -- Test restoring a geometry function() local c = client.get()[1]