swaybar: do not retry search for tray icons

In case a tray icon cannot be found or does not have a desirable size,
swaybar retries the search again and again, which increases load on disk
and CPU. This commit solves it by storing target_size for each icon, so
that swaybar does not search for an icon of some size if it already tried to.

Fixes #3789.
This commit is contained in:
Konstantin Pospelov 2019-06-08 18:11:32 +03:00 committed by Simon Ser
parent a5b6f40937
commit fa0abaf7cf
3 changed files with 62 additions and 52 deletions

View file

@ -124,7 +124,9 @@ uint32_t render_tray(cairo_t *cairo, struct swaybar_output *output, double *x) {
struct swaybar_tray *tray = output->bar->tray;
for (int i = 0; i < tray->items->length; ++i) {
uint32_t h = render_sni(cairo, output, x, tray->items->items[i]);
max_height = h > max_height ? h : max_height;
if (h > max_height) {
max_height = h;
}
}
return max_height;