When height > 0, CreateFontA/W() should not return a font face exceeding the requested height.
For instance, Tahoma has 2049 units of ascent, 423 units of descent and its units per EM square is
2048. When requesting a font 20 pixels in height, ppem = units_per_EM * requested_height / (ascent + descent)
= 2048 * 20 / (2049 + 423) = 16.57 ~= 17. When getting the resulting height back from the ppem,
resulting_height = (ascent + descent) * ppem / units_per_EM = (2049.0 + 423) * 17 / 2048 = 20.52
~=21. So it ends up getting a larger font than requested and violates the spec.
Fix Nancy Drew: Legend of the Crystal Skull crash at start.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
On wow64 64-bit win32u.dll is always loaded, causing win32u.so to
initialize at earlier stage than it would otherwise do. This patch
makes it more consistent across environments.
Ignore some messages for the parent window because the "Kill focus" message sequence starts
succeeding with this commit but sometimes those messages appear on Wine and cause random test
failures. Those messages are not interested in the tests so ignore them.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Fix MSXML 3.0 installer username edit control missing part of its edge. The application has a static
control overlapping an edit control. Repainting the edit control immediately will cause the edit
control to be painted under the static control.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
If EIMES_GETCOMPSTRATONCE is not set, WM_IME_COMPOSITION with LPARAM set to GCS_RESULTSTR should be
passed to the default window procedure according to MSDN.
Fix some windows based on edit control not being able to input Chinese.
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Despite common sense, native doesn't seem to look for exact match first;
it simply case-insensitively compares the props and returns as soon as it
finds one. This is also reliant on implementation details in case the object
has multiple props with same case-insensitive names, e.g. an object having
`Foo` prop, with `foo` prop on its prototype, can still find `Foo` even if
you look up `foo` instead (which matches exactly on the prototype). Which
is not always reliable, sometimes it finds the prototype first.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>