There are two issues at play here. First, BLF_width computed a width that was not wide enough to actually hold the text. Second, blf_glyph_calc_rect_test computed an incorrect rect->xmax when the glyph was moved to the left a bit. We ignore the overlap on the left, but the right side should still be adjusted accordingly.