diff options
author | Aylur <[email protected]> | 2024-09-26 03:55:27 +0200 |
---|---|---|
committer | Aylur <[email protected]> | 2024-09-26 03:55:45 +0200 |
commit | 662f71471847aa7fd424aa24865eaf9a420f2f28 (patch) | |
tree | 5e103709638351d87cbdb3df902428be438a3738 /core/lua/astal | |
parent | 22fece46e5b39d146aebc995c28c301e898ae1d6 (diff) |
lua: add notify::prop signal support for hooks
Diffstat (limited to 'core/lua/astal')
-rw-r--r-- | core/lua/astal/widget.lua | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/core/lua/astal/widget.lua b/core/lua/astal/widget.lua index e043bb1..1f5b07b 100644 --- a/core/lua/astal/widget.lua +++ b/core/lua/astal/widget.lua @@ -116,9 +116,17 @@ end local function astalify(ctor) function ctor:hook(object, signalOrCallback, callback) if GObject.Object:is_type_of(object) and type(signalOrCallback) == "string" then - local id = object["on_" .. signalOrCallback]:connect(function(_, ...) - callback(self, ...) - end) + local id + if string.sub(signalOrCallback, 1, 8) == "notify::" then + local prop = string.gsub(signalOrCallback, "notify::", "") + id = object.on_notify:connect(function() + callback(self, object[prop]) + end, prop, false) + else + id = object["on_" .. signalOrCallback]:connect(function(_, ...) + callback(self, ...) + end) + end self.on_destroy = function() GObject.signal_handler_disconnect(object, id) end |