q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7806e7902430f30548cb79f474bb3c421539ccab
commit 7806e7902430f30548cb79f474bb3c421539ccab Author: Daniel Kolesa <d.kol...@samsung.com> Date: Wed Feb 25 14:01:45 2015 +0000 elua: better mixin behavior (+ fix bad lookup) --- src/bindings/luajit/eo.lua | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/bindings/luajit/eo.lua b/src/bindings/luajit/eo.lua index 797aaf9..9067a05 100644 --- a/src/bindings/luajit/eo.lua +++ b/src/bindings/luajit/eo.lua @@ -212,9 +212,16 @@ end M.class_mixin = function(name, mixin) local cl = classes[name] + local mi = classes[mixin] + local ck = "__mixin_" .. mixin + -- do not mixin if it already has been mixed in previously + -- but only do it for mixins, not for ifaces, for proper lookup order + if mi[ck] and cl[ck] then + return + end -- mixin properties/events - mixin_tbl(cl, mixin, "__properties") - mixin_tbl(cl, mixin, "__events") + mixin_tbl(cl, mi, "__properties") + mixin_tbl(cl, mi, "__events") -- mixin the rest cl:mixin(classes[mixin]) end --