diff options
author | Kevin <[email protected]> | 2024-11-04 02:15:18 -0300 |
---|---|---|
committer | Kevin <[email protected]> | 2024-11-04 02:15:18 -0300 |
commit | 5489883e0199632b8aa269ae268739c96c4b272e (patch) | |
tree | 3e54fc2e5f296de8aa732d031c138e884373bfaf /lang/lua/astal/binding.lua | |
parent | c5eba25c0788f62b19e785c895b29f432108ab25 (diff) |
core: smol lua fixes
Diffstat (limited to 'lang/lua/astal/binding.lua')
-rw-r--r-- | lang/lua/astal/binding.lua | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/lang/lua/astal/binding.lua b/lang/lua/astal/binding.lua index 2944ec4..610f3a6 100644 --- a/lang/lua/astal/binding.lua +++ b/lang/lua/astal/binding.lua @@ -7,7 +7,7 @@ local GObject = lgi.require("GObject", "2.0") ---@field transform_fn function local Binding = {} ----@param emitter table +---@param emitter table | userdata ---@param property? string ---@return Binding function Binding.new(emitter, property) @@ -28,11 +28,11 @@ function Binding:__tostring() return str .. ">" end +---@return any function Binding:get() if self.property ~= nil and GObject.Object:is_type_of(self.emitter) then return self.transform_fn(self.emitter[self.property]) - end - if type(self.emitter.get) == "function" then + elseif type(self.emitter.get) == "function" then return self.transform_fn(self.emitter:get()) end error("can not get: Not a GObject or a Variable " + self) @@ -58,8 +58,7 @@ function Binding:subscribe(callback) return function() GObject.signal_handler_disconnect(self.emitter, id) end - end - if type(self.emitter.subscribe) == "function" then + elseif type(self.emitter.subscribe) == "function" then return self.emitter:subscribe(function() callback(self:get()) end) |