From 2c8c274193876f31c1d3725c81f5dbcacf9e044f Mon Sep 17 00:00:00 2001 From: Emmanuel Lepage Vallee Date: Tue, 24 Jul 2018 17:11:00 -0400 Subject: [PATCH] tests: Add the capi.object miss handle support to the capi.mouse shim --- tests/examples/shims/mouse.lua | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/tests/examples/shims/mouse.lua b/tests/examples/shims/mouse.lua index 01d7bb40..c4766f3b 100644 --- a/tests/examples/shims/mouse.lua +++ b/tests/examples/shims/mouse.lua @@ -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