Merge pull request #3375 from Aire-One/fix/3371

[Fix/3371] wibox.widget.base set opacity emit "widget::redraw_needed"
This commit is contained in:
mergify[bot] 2021-06-28 05:15:05 +00:00 committed by GitHub
commit d1c3394e40
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 60 additions and 1 deletions

View File

@ -260,7 +260,7 @@ end
function base.widget:set_opacity(o)
if o ~= self._private.opacity then
self._private.opacity = o
self:emit_signal("widget::redraw")
self:emit_signal("widget::redraw_needed")
end
end

View File

@ -87,6 +87,65 @@ describe("wibox.widget.base", function()
assert.is_true(called2)
end)
end)
describe("Setters emit signals", function()
local widget
local signal_called
local callback = function () signal_called = true end
before_each(function()
widget = base.make_widget()
signal_called = false
end)
it("'set_visible' calls 'widget::layout_changed'", function()
widget:connect_signal("widget::layout_changed", callback)
widget:set_visible(false)
assert.is_true(signal_called)
end)
it("'set_visible' calls 'widget::redraw_needed'", function()
widget:connect_signal("widget::redraw_needed", callback)
widget:set_visible(false)
assert.is_true(signal_called)
end)
it("'set_opacity' calls 'widget::redraw_needed'", function()
widget:connect_signal("widget::redraw_needed", callback)
widget:set_opacity(0)
assert.is_true(signal_called)
end)
it("'set_forced_width' calls 'widget::layout_changed'", function()
widget:connect_signal("widget::layout_changed", callback)
widget:set_forced_width(0)
assert.is_true(signal_called)
end)
it("'set_forced_height' calls 'widget::layout_changed'", function()
widget:connect_signal("widget::layout_changed", callback)
widget:set_forced_height(0)
assert.is_true(signal_called)
end)
it("'set_widget_common' calls 'property::widget'", function()
-- Implement `set_widget`
rawset(widget, "set_widget", base.set_widget_common)
widget:connect_signal("property::widget", callback)
widget:set_widget(base.make_widget())
assert.is_true(signal_called)
end)
it("'set_widget_common' calls 'widget::layout_changed'", function()
-- Implement `set_widget`
rawset(widget, "set_widget", base.set_widget_common)
widget:connect_signal("widget::layout_changed", callback)
widget:set_widget(base.make_widget())
assert.is_true(signal_called)
end)
end)
end)
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80