wibox.widget.systray: Also emit redraw_needed

When emitting layout_changed, the widget is relayouted. If this doesn't actually
change anything, nothing will be redrawn. Thus, this also emits redraw_needed to
force redraws.

This fixes a race condition with some weird tray icons. A new tray icon is
created and the systray is updated. Then this new icon is destroyed immediately
again and at the same time another icon is created. Then, the systray isn't
updated since the number of icons (=the layout) did not actually change.
However, it needs to be updated and so we ended up with broken/missing icons.

Fixes: https://github.com/awesomeWM/awesome/issues/487
Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit is contained in:
Uli Schlachter 2015-11-29 12:33:13 +01:00
parent 58bd21ad79
commit c02969bb0e
1 changed files with 1 additions and 0 deletions

View File

@ -84,6 +84,7 @@ local function new(revers)
capi.awesome.connect_signal("systray::update", function() capi.awesome.connect_signal("systray::update", function()
ret:emit_signal("widget::layout_changed") ret:emit_signal("widget::layout_changed")
ret:emit_signal("widget::redraw_needed")
end) end)
return ret return ret