X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/01bad23a2c11d5c05643016b3731d6d577547724..84313cc876bce8b346ca83934de57b50488ab8cd:/util/init.lua diff --git a/util/init.lua b/util/init.lua index ac3afec..70d8e52 100644 --- a/util/init.lua +++ b/util/init.lua @@ -74,32 +74,37 @@ function util.menu_clients_current_tags(menu, args) end -- Magnify a client: Set it to "float" and resize it. +local magnified_client = nil function util.magnify_client(c) - if not awful.client.floating.get(c) then - awful.client.floating.set(c, true) - - local mg = screen[mouse.screen].geometry - local tag = awful.tag.selected(mouse.screen) - local mwfact = awful.tag.getmwfact(tag) - local g = {} - g.width = math.sqrt(mwfact) * mg.width - g.height = math.sqrt(mwfact) * mg.height - g.x = mg.x + (mg.width - g.width) / 2 - g.y = mg.y + (mg.height - g.height) / 2 - c:geometry(g) + if c and not awful.client.floating.get(c) then + util.mc(c) + magnified_client = c else awful.client.floating.set(c, false) + magnified_client = nil end end +-- https://github.com/copycat-killer/lain/issues/195 +function util.mc(c) + c = c or magnified_client + if not c then return end + awful.client.floating.set(c, true) + local mg = screen[mouse.screen].geometry + local tag = awful.tag.selected(mouse.screen) + local mwfact = awful.tag.getmwfact(tag) + local g = {} + g.width = math.sqrt(mwfact) * mg.width + g.height = math.sqrt(mwfact) * mg.height + g.x = mg.x + (mg.width - g.width) / 2 + g.y = mg.y + (mg.height - g.height) / 2 + c:geometry(g) +end + -- Read the nice value of pid from /proc. local function get_nice_value(pid) local n = first_line('/proc/' .. pid .. '/stat') - if n == nil - then - -- This should not happen. But I don't want to crash, either. - return 0 - end + if not n then return 0 end -- Remove pid and tcomm. This is necessary because tcomm may contain -- nasty stuff such as whitespace or additional parentheses...