Vincent Povirk madewokherd@gmail.com wrote:
If there are only cosmetic objections, I'd like to see this patch accepted, and work of further improvements after that.
I asked Alexandre to wait until I had more time to understand/test this patch.
It seems you've introduced a problem with scaling (see attached test program and screenshot). I think that MeasureString is working correctly in this case, and DrawString/MeasureCharacterRanges are wrong.
Thanks for the test program, it's pretty illustrative. I sent another version of the patch that should take scaling and world transform into account.
This sort of problem would be less likely if the logic were in gdip_format_string.
I still think that it's more important to make these APIs behave correctly first, and only then try to optimize/merge/redesign the logic behind them.