В меню Окна>Панель окон не верно отображаются галочки. wine-etersoft-school-1.7.0-alt4 wine-etersoft-1.7.0-alt1
Когда я смотрел в eterhack, вместо галочки там «П». Проблема в том, что вместо шрифта System берётся какой-то векторный, в котором на этом месте русская буква, вот трейс по +font: trace:font:WineEngGetTextExtentExPoint 0x11d7b8, L"П", 1, 0, 0x32e290 trace:font:WineEngCreateFontInstance L"System", h=16, it=0, weight=400, PandF=22, charset=204 orient 0 escapement 0 ... trace:font:update_font_code_page charset 204 => cp 1251 Мне кажется, это вызвано нашими недавними патчами про кодировку cp1251 по умолчанию.
> Мне кажется, это вызвано нашими недавними патчами про кодировку cp1251 по > умолчанию. commit 8185340b0551866a36bc02445d72b72af0c019f9 Author: Alexander Morozov <amorozov@etersoft.ru> Date: Sun Dec 26 19:43:39 2010 +0300 gdi32: Hack for 1C 7.7 installer (eterbug #6685). Если ты про этот коммит, то если его закомментировать, ничего не меняется.
В оригинальном Wine таких проблем нет; проверил ветку eterhack и 1.0.12 там проблема неверно отображающихся галочек сохраняется. trace:font:WineEngGetTextExtentExPoint 0x11d7b8, L"П", 1, 0, 0x32e290 в dlls/gdi32/freetype.c последовательность вызова функций до появления "П" trace:font:WineEngGetTextExtentExPoint 0x11c398, L"", 0, 0, 0x32e290, 0, -1 trace:font:WineEngGetTextExtentExPoint return 0, 13, 0 trace:font:GetTextExtentExPointW returning 0 0 x 13 trace:font:GetTextExtentPointW not bug compatible. trace:font:GetTextExtentExPointW (0x4bd4, L"П", 0) trace:font:GetTextMetricsW text metrics: Weight = 400 FirstChar = 0 AveCharWidth = 5 Italic = 0 LastChar = 64258 MaxCharWidth = 17 UnderLined = 0 DefaultChar = 1 Overhang = 0 StruckOut = 0 BreakChar = 2 CharSet = 204 PitchAndFamily = 27 -------------------- InternalLeading = 2 Ascent = 11 Descent = 2 Height = 13 trace:font:WineEngGetTextExtentExPoint 0x11c398, L"П", 1, 0, 0x32e290, 1055, 0 trace:font:WineEngGetTextExtentExPoint
(В ответ на comment #3) > проверил ветку eterhack и 1.0.12 там проблема неверно отображающихся галочек Извините, в 1.0.12 всё хорошо вообще-то.
Проблема не верно отображающихся галочек решена.Патч отправил в wine-patches@.
Задача решена.
1. Нужно поднять патч, который внёс это изменение, возможно он для чего-то был нужен. 2. Изменения кода стоит сопровождать комментарием, иначе потом не ясно, зачем мы это изменили.
Для поиска изменений постепенно откатывал коммиты. Выяснилось следующее: Откатив до коммита :8185340b0551866a36bc02445d72b72af0c019f9 проблема неправильной отрисовки воспроизводилась. Откатив до коммита :1b7cc1f25985623fc399068858cfbea7d3630d24 проблема неправильной отрисовки не воспроизводилась. Просмотрев промежуточные состояния, изменений в dlls/gdi32/freetype.c не увидел.
Используя git log freetype.c получили, что первое индексирование изменение связанное с этим файлом : commit b1f66cf449896725c489ab2d2398e0aa4326da7e Merge: 7613c11 30c3292 Author: Vitaly Perov <vitperov@etersoft.ru> Date: Fri Dec 24 18:34:07 2010 +0300 Merge commit '30c3292932f0f02a6ec18fcddbb0fd6295ae5fa8' into eterhack но выяснили , что после отката более раннего (произвольного): commit 1b7cc1f25985623fc399068858cfbea7d3630d24 Author: Michael Stefaniuc <mstefani@redhat.de> Date: Mon Dec 20 11:34:08 2010 +0100 hnetcfg: Use an iface instead of an vtbl pointer in fw_manager. бага не воспроизвелась.
Патч который внес изменение: commit 174c50c096edb916e4751d71eb4649387eddc6fb Author: Alexander Morozov <amorozov@etersoft.ru> Date: Fri Jul 31 19:47:46 2009 +0400 gdi32: Fix problems with "Symbol type A" font (eterbug #2609).
Проверяем на eterschool
бутылка wine@eterschool bottle bugs/6750 WINE@Etersoft 1.0 School 1.7.1-eter1/1 Отображается всё правильно, но вместо галочки буква П