Fix miscalculation of list width in presence of empty particles

This commit is contained in:
Delgan 2024-03-31 18:53:57 +00:00 committed by Daniel Eklöf
parent c44c66c83f
commit 53dec73ed2
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
3 changed files with 10 additions and 6 deletions

View file

@ -71,7 +71,8 @@ dynlist_expose(const struct exposable *exposable, pixman_image_t *pix, int x, in
for (size_t i = 0; i < e->count; i++) {
const struct exposable *ee = e->exposables[i];
ee->expose(ee, pix, x + left_spacing, y, height);
x += left_spacing + e->widths[i] + right_spacing;
if (e->widths[i] > 0)
x += left_spacing + e->widths[i] + right_spacing;
}
}
@ -95,8 +96,8 @@ on_mouse(struct exposable *exposable, struct bar *bar,
}
return;
}
px += e->left_spacing + e->exposables[i]->width + e->right_spacing;
if (e->exposables[i]->width > 0)
px += e->left_spacing + e->exposables[i]->width + e->right_spacing;
}
LOG_DBG("on_mouse missed all sub-particles");

View file

@ -80,7 +80,8 @@ expose(const struct exposable *exposable, pixman_image_t *pix, int x, int y, int
for (size_t i = 0; i < e->count; i++) {
const struct exposable *ee = e->exposables[i];
ee->expose(ee, pix, x + left_spacing, y, height);
x += left_spacing + e->widths[i] + right_spacing;
if (e->widths[i] > 0)
x += left_spacing + e->widths[i] + right_spacing;
}
}
@ -109,8 +110,8 @@ on_mouse(struct exposable *exposable, struct bar *bar,
}
return;
}
px += e->left_spacing + e->exposables[i]->width + e->right_spacing;
if (e->exposables[i]->width > 0)
px += e->left_spacing + e->exposables[i]->width + e->right_spacing;
}
/* We're between sub-particles (or in the left/right margin) */