summaryrefslogtreecommitdiff
path: root/lang/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lang/lua')
-rw-r--r--lang/lua/astal/gtk3/astalify.lua25
-rw-r--r--lang/lua/astal/gtk3/widget.lua7
-rw-r--r--lang/lua/astal/variable.lua4
3 files changed, 25 insertions, 11 deletions
diff --git a/lang/lua/astal/gtk3/astalify.lua b/lang/lua/astal/gtk3/astalify.lua
index 95faa2c..f1a280b 100644
--- a/lang/lua/astal/gtk3/astalify.lua
+++ b/lang/lua/astal/gtk3/astalify.lua
@@ -52,15 +52,20 @@ local function includes(tbl, elem)
end
local function set_children(parent, children)
- children = map(flatten(children), function(item)
- if Gtk.Widget:is_type_of(item) then
- return item
- end
- return Gtk.Label({
- visible = true,
- label = tostring(item),
- })
- end)
+ children = map(
+ filter(flatten(children), function(item)
+ return not not item
+ end),
+ function(item)
+ if Gtk.Widget:is_type_of(item) then
+ return item
+ end
+ return Gtk.Label({
+ visible = true,
+ label = tostring(item),
+ })
+ end
+ )
-- remove
if Gtk.Bin:is_type_of(parent) then
@@ -174,7 +179,7 @@ return function(ctor)
end)))
-- default visible to true
- if type(tbl.visible) ~= "boolean" then
+ if tbl.visible == nil then
tbl.visible = true
end
diff --git a/lang/lua/astal/gtk3/widget.lua b/lang/lua/astal/gtk3/widget.lua
index c8857e7..654da29 100644
--- a/lang/lua/astal/gtk3/widget.lua
+++ b/lang/lua/astal/gtk3/widget.lua
@@ -19,6 +19,7 @@ local Widget = {
Label = astalify(Gtk.Label),
LevelBar = astalify(Astal.LevelBar),
-- TODO: ListBox
+ MenuButton = astalify(Gtk.MenuButton),
Overlay = astalify(Astal.Overlay),
Revealer = astalify(Gtk.Revealer),
Scrollable = astalify(Astal.Scrollable),
@@ -64,6 +65,12 @@ Gtk.Widget._attribute.click_through = {
set = Astal.widget_set_click_through,
}
+Gtk.Widget._attribute.action_group = {
+ set = function (self, v)
+ self:insert_action_group(v[1], v[2])
+ end
+}
+
local no_implicit_destroy = {}
Gtk.Widget._attribute.no_implicit_destroy = {
get = function(self)
diff --git a/lang/lua/astal/variable.lua b/lang/lua/astal/variable.lua
index ad59a3f..5832d8a 100644
--- a/lang/lua/astal/variable.lua
+++ b/lang/lua/astal/variable.lua
@@ -260,7 +260,9 @@ function Variable.derive(deps, transform)
local unsubs = {}
for i, b in ipairs(deps) do
- unsubs[i] = b:subscribe(update)
+ unsubs[i] = b:subscribe(function()
+ var:set(update())
+ end)
end
var.variable.on_dropped = function()