diff options
Diffstat (limited to 'lang/lua')
-rw-r--r-- | lang/lua/astal/gtk3/astalify.lua | 25 | ||||
-rw-r--r-- | lang/lua/astal/gtk3/widget.lua | 7 | ||||
-rw-r--r-- | lang/lua/astal/variable.lua | 4 |
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() |