Bug 489

Summary: Неправильное отображение меню в Консультанте
Product: WINE@Etersoft Reporter: Константин Кондратюк <kondratyuk>
Component: Графика GDI / DIB / GDIPLUSAssignee: Константин Кондратюк <kondratyuk>
Status: CLOSED WONTFIX QA Contact:
Severity: enhancement    
Priority: P5 CC: baraka, lav
Version: 1.0.6   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 697, 767, 1217    
Attachments: скриншот

Description Константин Кондратюк 2007-02-27 10:38:32 MSK
В меню поля имеют неправильную ширину. При расчёте ширины не учитывается место под горячие клавиши.
Comment 1 Константин Кондратюк 2007-02-27 20:57:34 MSK
В Консультанте элементы меню имеют флаг MF_OWNERDRAW и должны рассчитываться и отрисовываться программой. Размер, возвращаемый функцией MENU_CalcItemSize, рассчитывается неправильно.
Comment 2 Константин Кондратюк 2007-02-27 20:59:36 MSK
При версии WinXP меню отображается правильно. В Win98 - нет. Нужно понять алгоритм расчёта и чем отличаются друг от друга расчёты для разных win-версий.
Comment 3 Константин Кондратюк 2007-02-27 21:01:14 MSK
К сборке 1.0.6 приложен патч, добавляющий к ширине строки 15 символов, если для пункта определены горячие клавиши. Вроде отображается корректно.
Comment 4 Vitaly Lipatov 2007-02-27 22:16:16 MSK
Как показали логи, по сообщению WM_MEASUREITEM Консультант в версии
>=win2000 вызывает DrawTextExW с полной строкой меню (с горячей клавишей), а при <win2000 - вызывает со строкой без горячей клавиши, выкидывая \tCtrl-P...
Из-за этого пункты не влезают в меню.
Comment 5 Vitaly Lipatov 2007-05-22 23:09:12 MSD
Оставляем на время, когда начнём общаться с Консультантом
Comment 6 Константин Кондратюк 2008-03-11 12:29:01 MSK
Имеет смысл поднимать вопрос и решать его сейчас?
Comment 7 Vitaly Lipatov 2008-03-11 12:42:45 MSK
Нет.
Comment 8 Vitaly Lipatov 2008-10-21 17:02:53 MSD
Патч был потерян и найден опять:

commit 75fef45fabde9736e3b5af7a8e85ab5b4d2bd033
Author: Vitaly Lipatov <lav@etersoft.ru>
Date:   Tue Oct 21 16:59:50 2008 +0400

    fix owner drawn menu in Konsultant (close eterbug #489 again)
Comment 9 Константин Кондратюк 2009-02-27 17:38:41 MSK
Опять всплывает проблема, на wine-1.0.10
Comment 10 Константин Кондратюк 2009-02-27 17:40:47 MSK
Патч, упоминающийся в комментарии #8, приложен
Comment 11 Денис Баранов 2009-03-03 14:48:18 MSK
(In reply to comment #10)
> Патч, упоминающийся в комментарии #8,
> приложен
> 

На текущей сборке eter10.1/eter6 проблемы не увидел. Можно поподробнее сценарий воспроизведения.

P.S. Через winexp консультант преобретает совсем другой вид. Появляются некоторые недостающие значки.
Comment 12 Константин Кондратюк 2009-03-03 15:31:42 MSK
Created attachment 1088 [details]
скриншот

Способ воспроизведения прост и виден на скриншоте :)
Comment 13 Константин Кондратюк 2009-04-10 14:37:35 MSD
Проблема уходит вместе с появлением возможности запускать Консультант в режиме winexp.
Старый хак откатил, патч в рассылке.