Implement :set_children() sanely everywhere
This makes the code use the existing functions for setting widgets. That way, all the sanity checks that the existing functions have are applied for this code as well. I just spent half an hour tracking down a bug where a boolean ended up as a "widget" in a fixed layout. The symptom was that while drawing the widget, an error happened. Via this change, the error would instead be flagged while constructing the widget. Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit is contained in:
parent
a2301ae8f3
commit
cf3c81fa9e
|
@ -175,11 +175,9 @@ end
|
|||
-- This layout only accept three children, all others will be ignored
|
||||
-- @tparam table children A table composed of valid widgets
|
||||
function align:set_children(children)
|
||||
if not children then return self:reset() end
|
||||
self.first = children[1]
|
||||
self.second = children[2]
|
||||
self.third = children[3]
|
||||
self:emit_signal("widget::layout_changed")
|
||||
self:set_first(children[1])
|
||||
self:set_second(children[2])
|
||||
self:set_third(children[3])
|
||||
end
|
||||
|
||||
--- Fit the align layout into the given space. The align layout will
|
||||
|
|
|
@ -54,8 +54,7 @@ end
|
|||
-- This layout only accept one children, all others will be ignored
|
||||
-- @tparam table children A table composed of valid widgets
|
||||
function constraint:set_children(children)
|
||||
self.widget = children and children[1]
|
||||
self:emit_signal("widget::layout_changed")
|
||||
self:set_widget(children[1])
|
||||
end
|
||||
|
||||
--- Set the strategy to use for the constraining. Valid values are 'max',
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
-- @classmod wibox.layout.fixed
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
local unpack = unpack or table.unpack -- luacheck: globals unpack (compatibility with Lua 5.1)
|
||||
local base = require("wibox.widget.base")
|
||||
local table = table
|
||||
local pairs = pairs
|
||||
|
@ -110,9 +111,10 @@ end
|
|||
--- Replace the layout children
|
||||
-- @tparam table children A table composed of valid widgets
|
||||
function fixed:set_children(children)
|
||||
if not children then return self:reset() end
|
||||
self.widgets = children
|
||||
self:emit_signal("widget::layout_changed")
|
||||
self:reset()
|
||||
if #children > 0 then
|
||||
self:add(unpack(children))
|
||||
end
|
||||
end
|
||||
|
||||
--- Replace the first instance of `widget` in the layout with `widget2`
|
||||
|
|
|
@ -82,8 +82,7 @@ end
|
|||
-- This layout only accept one children, all others will be ignored
|
||||
-- @tparam table children A table composed of valid widgets
|
||||
function margin:set_children(children)
|
||||
self.widget = children and children[1]
|
||||
self:emit_signal("widget::layout_changed")
|
||||
self:set_widget(children[1])
|
||||
end
|
||||
|
||||
--- Set all the margins to val.
|
||||
|
|
|
@ -68,8 +68,7 @@ end
|
|||
-- This layout only accept one children, all others will be ignored
|
||||
-- @tparam table children A table composed of valid widgets
|
||||
function mirror:set_children(children)
|
||||
self.widget = children and children[1]
|
||||
self:emit_signal("widget::layout_changed")
|
||||
self:set_widget(children[1])
|
||||
end
|
||||
|
||||
--- Reset this layout. The widget will be removed and the axes reset.
|
||||
|
|
|
@ -76,8 +76,7 @@ end
|
|||
-- This layout only accept one children, all others will be ignored
|
||||
-- @tparam table children A table composed of valid widgets
|
||||
function rotate:set_children(children)
|
||||
self.widget = children and children[1]
|
||||
self:emit_signal("widget::layout_changed")
|
||||
self:set_widget(children[1])
|
||||
end
|
||||
|
||||
--- Reset this layout. The widget will be removed and the rotation reset.
|
||||
|
|
|
@ -267,8 +267,7 @@ end
|
|||
-- This layout only accept one children, all others will be ignored
|
||||
-- @tparam table children A table composed of valid widgets
|
||||
function scroll:set_children(children)
|
||||
self.widget = children and children[1]
|
||||
self:emit_signal("widget::layout_changed")
|
||||
self:set_widget(children[1])
|
||||
end
|
||||
|
||||
--- Specify the expand mode that is used for extra space.
|
||||
|
|
|
@ -109,8 +109,7 @@ end
|
|||
-- This layout only accept one children, all others will be ignored
|
||||
-- @tparam table children A table composed of valid widgets
|
||||
function background:set_children(children)
|
||||
self.widget = children and children[1]
|
||||
self:emit_signal("widget::layout_changed")
|
||||
self:set_widget(children[1])
|
||||
end
|
||||
|
||||
--- Set the background to use
|
||||
|
|
Loading…
Reference in New Issue