29f1719026
Some titlebar widgets (`awful.titlebar.widget.titlewidget`, `awful.titlebar.widget.button` and other specific button widgets) could not be garbage collected until the associated client was unmanaged, because the signal connection used to update the widget was never destroyed, and the signal handling function was keeping a reference to the widget in its environment. This resulted in high memory usage when the titlebar widgets were recreated multiple times for the same client (this does not happen with the default Awesome configuration, but may be needed for dynamic titlebar reconfiguration in a custom config). Modify the code to use weak tables instead of direct signal connections to avoid keeping strong references to widgets. The widget update functions still keep strong references to the widget itself (creating a reference loop, but the Lua GC should handle it correctly) and the client object, but this should not be a problem. One publicly visible change is that `awful.titlebar.widget.titlewidget` now has an `update` function, like the button widgets. Signed-off-by: Sergey Vlasov <sigprof@gmail.com> |
||
---|---|---|
.. | ||
awful | ||
beautiful | ||
gears | ||
menubar | ||
naughty | ||
wibox | ||
beautiful.lua | ||
naughty.lua |