diff options
author | Tim Keller <tjkeller.xyz> | 2025-04-18 23:48:39 -0500 |
---|---|---|
committer | Tim Keller <tjkeller.xyz> | 2025-04-18 23:48:39 -0500 |
commit | cc16be5d1a81f6ed6d216189ab7669b942b8403d (patch) | |
tree | 02ef1eed1f54461926bb0a79ee0e7da3fea2a6bd /widgets | |
parent | 428ce27f3004a8d7d367e87594da1b8d93241823 (diff) | |
download | awesome-cc16be5d1a81f6ed6d216189ab7669b942b8403d.tar.xz awesome-cc16be5d1a81f6ed6d216189ab7669b942b8403d.zip |
destroy old menus and hide/destroy on visibility change
Diffstat (limited to 'widgets')
-rw-r--r-- | widgets/volumedropdown.lua | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/widgets/volumedropdown.lua b/widgets/volumedropdown.lua index d669b46..a25db70 100644 --- a/widgets/volumedropdown.lua +++ b/widgets/volumedropdown.lua @@ -149,7 +149,7 @@ end) default_sink_scrollbox:connect_signal("button::press", function() widget.dropdown.visible = true -- make sure widget isn't hidden - local g = mouse.current_widget_geometry + local g = mouse.current_widget_geometry -- relative to widget.dropdown local menugeo = { x = widget.dropdown.x + g.x - beautiful.margin_topbottom, y = widget.dropdown.y + g.y + g.height + beautiful.margin_topbottom + (beautiful.border_width * 2), @@ -163,8 +163,16 @@ default_sink_scrollbox:connect_signal("button::press", function() }) end - if widget._menu then widget._menu:hide() end - widget._menu = awful.menu(menuopts):show({ coords = menugeo }) + if widget.menu then widget.menu:hide() end + widget.menu = awful.menu(menuopts) -- old menu dereferenced, should be cleaned up by gc + widget.menu:show({ coords = menugeo }) +end) + +widget.dropdown:connect_signal("property::visible", function() + if widget.menu then + widget.menu:hide() + widget.menu = nil + end end) -- mute button |