I think I’ve finally figured out what was going wrong. To prevent it crashing when a ‘&’ character is used, there was a workaround in the code to calculates the size of a string, and for some reason this was causing it to return an incorrect value on some variable width fonts. I’ve removed the ‘&’ from the default valid characters list and hopefully everything is ok (and I’m not going to waste any more time to fix it for that one character).
Next up I have to look at improving the jaggedy right edge, and add some kind of check to use the better character when the width and values are the same. You won’t have any idea what I’m talking about, but never mind: after these I think I can release the new version.
I really want to move to .Net 2.0 🙁