Укажите отработанное время

Отработанное время:
Продуктивное время:
Bug 3735 - Консультант : Прорисовка надписи в "Карточке поиска"   Make a simular bug
Summary: Консультант : Прорисовка надписи в "Карточке поиска"
Status: CLOSED FIXED
Alias: None
Product: WINE@Etersoft
Classification: Продукты (Products)
Component: Окна / фокус / перерисовка (show other bugs)
Version: 1.0.10
Hardware: PC All
: P4 major
Target Milestone: ---
Assignee: Илья Шпигорь
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 767 3962
  Show dependency treegraph
 
In work:
Reported: 2009-03-26 18:23 MSK by Глеб Кордюков
Modified: 2009-05-19 17:18 MSD (History)
0 users

See Also:
Заявки RT:
Связано с:
Дата напоминания:


Attachments
Как это выглядит на Линуксе (118.92 KB, image/jpeg)
2010-11-18 03:58 MSK, Глеб Кордюков
Details
Как это выглядит на Windows (119.46 KB, image/jpeg)
2010-11-18 03:58 MSK, Глеб Кордюков
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Глеб Кордюков 2009-03-26 18:23:36 MSK
Бутылка : consultant/const3300.35
ProgramFiles/Consult2008/
wine cons.exe
В стартовом меню выбираем пункт "Карточка поиска" -> на появившемся окне внизу слева надпись : "Установленные информационные банки". См. скрины.
Comment 1 Глеб Кордюков 2009-03-26 18:24:53 MSK
Created attachment 1121 [details]
Как это выглядит на Линуксе
Comment 2 Глеб Кордюков 2009-03-26 18:27:50 MSK
Created attachment 1122 [details]
Как это выглядит на Windows
Comment 3 Глеб Кордюков 2009-03-26 18:29:51 MSK
При этом если выполнить поиск по любой сроке в карте поиска. то название сменится на "Результаты поиска" и будет прорисовываться корректно.
Comment 4 Илья Шпигорь 2009-04-01 16:18:55 MSD
Выложил патч.

Проблема заключается в том, что Консультант перед выводом строк вызывает DrawTextExW с флагом DT_CALCRECT, чтобы определить rect необходимый для вывода текста. DrawTextExW, когда считает размер этого rect, зачем-то ориентируется на его размеры, которые были переданны в фукцию.

В случае с консультантом в DrawTextExW передается rect (0,0)-(1,1). Поэтому DrawTextExW считает, что в каждую строчку поместиться только одна буква и возвращает rect с размером (0,0)-(14,825), т.е. вытянутый по высоте.

Патч изменяет поведение DrawTextExW. Теперь если установлен флаг DT_CALCRECT размер rect определяется по длине слова, полученного после переноса функцией TEXT_WordBreak.
Comment 5 Глеб Кордюков 2009-04-10 15:48:13 MSD
проверил на 1.0.10
Всё работает корректно.