Summary: | Налогоплательщик ЮЛ: Неправильная отрисовка поля выбора | ||
---|---|---|---|
Product: | WINE@Etersoft | Reporter: | Синицын Иван <ivan> |
Component: | Графика GDI / DIB / GDIPLUS | Assignee: | Илья Шпигорь <shpigor> |
Status: | CLOSED FIXED | QA Contact: | Денис Баранов <baraka> |
Severity: | minor | ||
Priority: | P5 | CC: | baraka, kondratyuk, lav, night, vkozlov |
Version: | 1.0.9 | ||
Target Milestone: | --- | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | |||
Bug Blocks: | 777, 3932, 4267, 6917, 7036 | ||
Attachments: | неправильная отрисовка |
Description
Синицын Иван
2007-05-30 15:38:07 MSD
При запуске с установкой в настройках (win98), в последней сборке (07.06.2007) в SUSE проблема с вводом русских букв не проявилась. Замечено что текст в подсказке обрезается, в том случае если текст этой подсказки больше чем размер последней показанной, в этом случае текст обрезается под размер предыдушей подсказки. Приветствуются результаты тестирования от заинтересованных лиц Еще проблема: Программа не закрывается при щелчке на крестик, можно закрыть только с помощью соответствующего пункта меню. " устанавливается, запускается, но формы принять не может, говорит что то вроде ошибки открытия cab файла " У меня при проверке не проявилось... Актуальная запись здесь одна - про неправильную отрисовку. Вот её надо решить. Там случайно не из пакета EhLib использован комбобокс? Я заметил что EhLib-овский комбобокс периодически либо не прорисовывает выбранный пункт вообще либо прорисовывает похожим образом. И ещё в этом контроле скролл не работает. При перемещении окон остается пунктирный след, как в 1С8.1. Ошибка с отрисовкой поля осталась. Ошибка с неправильной отрисовкой проявляется в следующем случае. В выпадающем списке выбирается строка длиннее чем контрол в который она вставляется. Затем после перекрытия этого контрола и соседних другим окном, получаем такую отрисовку. Судя по backtrace на вывод текста в контрол: =>1 0x7ef00c30 DrawTextExW 2 0x7ef027f1 DrawTextA+0x61 3 0x0c0365d9 in vfp8r (+0x365d9) (0x0032c618) Можно предположить, что он, возможно, из библиотеки Visual Fox Pro. Возможное решение - проверять в функции TEXT_NextLineW помещается ли выводимый текст в контрол. Если нет, то корректировать его длину до размера контрола. На это решение сделал патч. Патч на отрисовку поля выслал. Было бы неплохо его потестить. Проверил с патчем, ошибка не воспроизвелась. На текущей версии не воспроизвелось. libwine-1.0.9-alt20 wine-etersoft-sql-1.0.9-alt5 wine-1.0.9-alt20 Выложил патч и реверт на #595 багу. Дело в том, что текст отрисовывается абсолютно корректно. Проблема с отрисовкой фона. Если при вызове DrawTextEx не указан флаг DT_NOCLIP - это означает, что текст должен обрезаться по размерам переданного в функцию rect'а. Как видно из скриншотов - это и происходит. Текст обрезается, а его фон отрисовывается без обрезания. Функция DrawTextEx, по-сути, обертка для ExtTextOutW, в которой флаг ETO_CLIPPED - определяет надо ли обрезать текст. Решение заключается в добавлении проверки на флаг ETO_CLIPPED в расчете размера фона для отрисовываемого текста. Если флаг установлен, то фон обрезается по переданному в функцию rect'у. Если переданный в функцию rect больше, чем занимает текст - размер фона определяется размером текста. WINE@Etersoft 1.0 SQL 1.0.11-eter8.3/4 All's working correctly. |