summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAylur <[email protected]>2024-09-26 03:55:27 +0200
committerAylur <[email protected]>2024-09-26 03:55:45 +0200
commit662f71471847aa7fd424aa24865eaf9a420f2f28 (patch)
tree5e103709638351d87cbdb3df902428be438a3738
parent22fece46e5b39d146aebc995c28c301e898ae1d6 (diff)
lua: add notify::prop signal support for hooks
-rw-r--r--core/lua/astal/widget.lua14
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