On Sat, Aug 7, 2021, at 9:34 PM, [email protected] wrote:
> -                     for (len = MIN(utf8strlen, sizeof(buf) - 1); len && ew 
> > w; len--)
> -                             drw_font_getexts(usedfont, utf8str, len, &ew, 
> NULL);
> +                     if (ew > w)
> +                             for (ew = 0, len = 0; ew < w - lpad * 2 && len 
> < MIN(utf8strlen, 
> sizeof(buf) - 1); len++)
> +                                     drw_font_getexts(usedfont, utf8str, 
> len, &ew, NULL);
> +                     else
> +                             len = MIN(utf8strlen, sizeof(buf) - 1);

To test, try selecting previous/next items with the following (adjust -c as 
needed):
for i in $(seq 20); do
  cat /dev/urandom | base64 | tr -d '\n' | head -c 1000000
done | ./dmenu -l 10

Reply via email to