awesome/tests/examples/shims/key.lua

32 lines
813 B
Lua

local gears_obj = require("gears.object")
local key, meta = awesome._shim_fake_class()
local function new_key(_, args)
local ret = gears_obj()
ret._private = args or {}
-- The miss handler wont work for this.
for k, v in pairs(ret._private) do
rawset(ret, k, v)
end
--TODO v5: remove this.
ret.data = ret._private
rawset(ret, "_is_capi_key", true)
local md = setmetatable(ret, {
__index = function(...) return meta.__index(...) end,
__newindex = function(...) return meta.__newindex(...) end
})
assert((not args) or args.key == md.key)
return md
end
return setmetatable(key, { __call = new_key, })
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80