В панели окон не отображаются графические значки окон, а только названия открытых окон
Отрисовка табов (из которых устроена панель окон) временно отключена (см. #95) из-за ошибки в передаче необходимых данных в приложение.
Нужно проверить на eterhack >= 1.3.5
Проверил на Edumandriva c eterhack 1.4, значки окон не отображаются.
*** Bug 7303 has been marked as a duplicate of this bug. ***
Бага #95 исправлена, теперь есть возможность включить отображение значков в панели? Воспроизводится повсюду.
> Отрисовка табов (из которых устроена панель окон) временно отключена (см. #95) > из-за ошибки в передаче необходимых данных в приложение. А в каком конкретно патче она отключена?
Проблема наблюдается до сих пор, причем и в оригинальном вайне. Интересно, что нативная comctl32 ничего не устраняет.
По предварительным результатам проблема в DrawIconEx.
(В ответ на comment #8) > По предварительным результатам проблема в DrawIconEx. Поправка: GetClassLongA() возвращает нулевой дескриптор иконки, 1С готова к такому повороту событий и поэтому рисует текст смещенным влево, используя место где должен быть значок.
Сделал патч и тест по данной проблеме. Отправил на winehq , но возникли проблемы со сборко на 64-разрядной машие.
(В ответ на comment #10) > Сделал патч и тест по данной проблеме. Отправил на winehq , но возникли > проблемы со сборко на 64-разрядной машие. Исправил, отправил вновь. http://www.winehq.org/pipermail/wine-patches/2012-September/117609.html http://www.winehq.org/pipermail/wine-patches/2012-September/117619.html
Провел дополнительное исследование поведения маленьких иконок в Windows. В случае игнорирования отправленных патчей есть чем их дополнить.
(В ответ на comment #12) > Провел дополнительное исследование поведения маленьких иконок в Windows. В > случае игнорирования отправленных патчей есть чем их дополнить. К моим патчам как всегда ноль внимания, поэтому полученные результаты пригодились. Расширил тест и решение, отправил вновь. http://www.winehq.org/pipermail/wine-patches/2012-September/117688.html http://www.winehq.org/pipermail/wine-patches/2012-September/117689.html
(В ответ на comment #13) > (В ответ на comment #12) > > Провел дополнительное исследование поведения маленьких иконок в Windows. В > > случае игнорирования отправленных патчей есть чем их дополнить. > > К моим патчам как всегда ноль внимания, поэтому полученные результаты > пригодились. Расширил тест и решение, отправил вновь. > http://www.winehq.org/pipermail/wine-patches/2012-September/117688.html > http://www.winehq.org/pipermail/wine-patches/2012-September/117689.html Патчи все еще в очереди. Отправил напоминание в winehq.
(В ответ на comment #14) > Патчи все еще в очереди. Отправил напоминание в winehq. Получил замечания по тесту, перерабатываю его.
(В ответ на comment #15) > Получил замечания по тесту, перерабатываю его. Отправил вновь.
(В ответ на comment #16) > (В ответ на comment #15) > > Получил замечания по тесту, перерабатываю его. > > Отправил вновь. Тест прошел. Чуть подпилил исправление и отправил повторно.
(В ответ на comment #17) > Тест прошел. Чуть подпилил исправление и отправил повторно. Принято в WineHQ, но в eter-2.0.0 это исправление не помогает. Пытаюсь разобраться с причиной.
(В ответ на comment #18) > Принято в WineHQ, но в eter-2.0.0 это исправление не помогает. Пытаюсь > разобраться с причиной. Причина пока не ясна. GetClassLong() возвращающий иконку вообще не вызывается. Вероятно это регрессия вызванная каким-то из имеющихся хаков.
Продолжаю выяснение причин. Пока продвижение весьма условное.
(В ответ на comment #20) > Продолжаю выяснение причин. Пока продвижение весьма условное. Конкретнее: отрисовкой содержимого кнопки занимается MFC которая использует для этого определенную пользователем функцию. По непонятным причинам этого вызова не происходит. Вероятно придется ковырять исходники MFC42.
On 2012-10-16 6:44, Bruno Jesus wrote: Hi, Sergey. I don't know if it's related, at least is related to icons but if possible could you take a look at bug http://bugs.winehq.org/show_bug.cgi?id=18578 Задача тоже связана с иконками класса. Думаю стоит заняться. Лишний патч в winehq не помешает.
(В ответ на comment #21) > Конкретнее: отрисовкой содержимого кнопки занимается MFC которая использует для > этого определенную пользователем функцию. По непонятным причинам этого вызова > не происходит. Вероятно придется ковырять исходники MFC42. Продолжаю поиски в этом направлении.
(В ответ на comment #18) > Принято в WineHQ, но в eter-2.0.0 это исправление не помогает. Пытаюсь > разобраться с причиной. Всё оказалось очень просто: commit cd1bb1dc592e154c3c3fd222ea498604bd57befa Author: Vitaly Lipatov <lav@etersoft.ru> Date: Mon Apr 28 12:29:13 2008 +0400 Disable owner draw Этот патч просто не дает возможности 1С нарисовать кнопку по своему усмотрению.
(В ответ на comment #24) ... > commit cd1bb1dc592e154c3c3fd222ea498604bd57befa > Author: Vitaly Lipatov <lav@etersoft.ru> > Date: Mon Apr 28 12:29:13 2008 +0400 > > Disable owner draw > > Этот патч просто не дает возможности 1С нарисовать кнопку по своему усмотрению. Этот патч откатывайте, но надо проверить, что 1С после этого не падает при открытии нескольких окон.
Это было сделано из-за http://bugs.etersoft.ru/show_bug.cgi?id=95
(В ответ на comment #25) > Этот патч откатывайте, но надо проверить, что 1С после этого не падает при > открытии нескольких окон. Вроде-бы всё гладко, как в eter-2.0.0 так и в eterhack. Отправил патчи.
Патчи приняты. Задача решена в WINE@Etersoft SQL 2.0.2-eter19/4
Created attachment 2682 [details] Скрин
1C:предприятие 7.7 Конфигурация: Бухгалтерия учет, редакция 4.5 WINE@Etersoft SQL 2.0.2-eter20/4 Все иконки отображаются. см скрин
Бага исправлена
Заметил "косметический" дефект - иконка и текст рисуются на белом фоне. Чисто визуально это несколько неприятно. Пишу тест для выяснения причин.
(В ответ на comment #33) > Заметил "косметический" дефект - иконка и текст рисуются на белом фоне. Чисто > визуально это несколько неприятно. Пишу тест для выяснения причин. С comctl32=n проблемы нет, очевидно искать нужно в реализации табов. Продолжаю поиск.
(В ответ на comment #34) > С comctl32=n проблемы нет, очевидно искать нужно в реализации табов. Продолжаю > поиск. Очевидно где-то перед вызовом пользовательской функции отрисовки пропущен вызов SetBkColor(). Выясняю детали.
Фон становится белым во время обработки WM_DRAWITEM родителем таба. Подозрения на то, что виноваты DrawIconEx или ExtTextOut не подтвердились.
Закрываем баги, принятые более года назад, и до сих пор не закрытые.