tests: Add the capi.object miss handle support to the capi.mouse shim

This commit is contained in:
Emmanuel Lepage Vallee 2018-07-24 17:11:00 -04:00
parent 1df44210c8
commit 2c8c274193
1 changed files with 25 additions and 2 deletions

View File

@ -3,7 +3,6 @@ local screen = require("screen")
local coords = {x=100,y=100}
local mouse = {
screen = screen[1],
old_histories = {},
history = {},
}
@ -17,11 +16,35 @@ function mouse.coords(args)
return coords
end
function mouse.set_newindex_miss_handler(h)
rawset(mouse, "_ni_handler", h)
end
function mouse.set_index_miss_handler(h)
rawset(mouse, "_i_handler", h)
end
function mouse.push_history()
table.insert(mouse.old_histories, mouse.history)
mouse.history = {}
end
return mouse
return setmetatable(mouse, {
__index = function(self, key)
if key == "screen" then
return screen[1]
end
local h = rawget(mouse,"_i_handler")
if h then
return h(self, key)
end
end,
__newindex = function(...)
local h = rawget(mouse,"_ni_handler")
if h then
h(...)
end
end,
})
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80