summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gjs/src/astalify.ts9
-rw-r--r--lua/astal/binding.lua2
-rw-r--r--lua/astal/widget.lua13
3 files changed, 17 insertions, 7 deletions
diff --git a/gjs/src/astalify.ts b/gjs/src/astalify.ts
index b97d730..d7f52fa 100644
--- a/gjs/src/astalify.ts
+++ b/gjs/src/astalify.ts
@@ -44,7 +44,14 @@ function setChildren(parent: Gtk.Widget, children: Gtk.Widget[]) {
}
function mergeBindings(array: any[]) {
- const getValues = () => array.map(i => i instanceof Binding ? i.get() : i)
+ function getValues(...args: any[]) {
+ let i = 0
+ return array.map(value => value instanceof Binding
+ ? args[i++]
+ : value,
+ )
+ }
+
const bindings = array.filter(i => i instanceof Binding)
if (bindings.length === 0)
diff --git a/lua/astal/binding.lua b/lua/astal/binding.lua
index c9929ea..50509d1 100644
--- a/lua/astal/binding.lua
+++ b/lua/astal/binding.lua
@@ -21,7 +21,7 @@ function Binding.new(emitter, property)
end
function Binding:__tostring()
- local str = "Binding<" .. tostring(self:get())
+ local str = "Binding<" .. tostring(self.emitter)
if self.property ~= nil then
str = str .. ", " .. self.property
end
diff --git a/lua/astal/widget.lua b/lua/astal/widget.lua
index 8cbb9b9..f9a7800 100644
--- a/lua/astal/widget.lua
+++ b/lua/astal/widget.lua
@@ -83,12 +83,15 @@ local function set_children(parent, children)
end
local function merge_bindings(array)
- local function get_values()
- return map(array, function(v)
- if getmetatable(v) == Binding then
- return v:get()
+ local function get_values(...)
+ local args = { ... }
+ local i = 0
+ return map(array, function(value)
+ if getmetatable(value) == Binding then
+ i = i + 1
+ return args[i]
else
- return v
+ return value
end
end)
end