I am warming up this topic, as I might have found the error causing the problem. I will also provide a solution and a workaround.
The problem is indeed in the getVisibleWidth() method in the TextEntryComponent
As you see in my case I have created a textfield and then changed the Font of the textfield
TextField test = new TextField("This is the anita30 font, that I just downloaded", new ElementId("textField"));
This call finally leads to:
Unfortunately the font is not reset (while the bitmapText is).
Therefore after changing a font of a textField with that method, the calculatinon of the size of text (and cursorposition etc.) is still using the parameters of the initial font with that the textField was created.
I am sure @pspeed you did not have this issue as you was using a style on your textFields and already created them with the new font and never changed it after creation. Anyhow this is how I figured it out.
A solution is to add a line
this.font = font;
in the setFont() method of the TextEntryComponent.java.
If someone dont like to change the lemur sources, he might change the style of a textfield before creating it insteadt of using the setFont() of the textField.
Styles style = GuiGlobals.getInstance().getStyles();
Attributes attrs = style.getSelector("textField", "glass");
Unfortunately this way you are stil not able to change a font of a textfield after creation.