http://bugs.winehq.org/show_bug.cgi?id=35165
Vincent Povirk madewokherd@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|gdiplus |gdi32
--- Comment #6 from Vincent Povirk madewokherd@gmail.com --- I get this from typing n but not m.
Mono is assuming that the result of DrawText with DT_CALCRECT for individual characters can be used to calculate the size of the entire string (also drawn with DrawText). It then uses that information to invalidate only the rectangle that should contain the newly-typed character.
In my testing, it seems to get a result of 7 for the width of n, but inspecting a screenshot shows that the width of the whole run increases by 6 pixels for each n in the string.
So either this is an invalid assumption in Mono, or DrawText is measuring the string incorrectly. I'm going to set the component in gdi32 and expect that it may be set back to mscoree if that's considered a broken use of the API.
This is ultimately going to need a redesign for bidi text, but I'm not equipped to even think about how to do that.