Название: QtWebKit и text-align. Ошибка отрисовки. Отправлено: Vd от Апрель 15, 2009, 12:07 День добрый всем.
Обнаружил странность при работе QWebView с установленным атрибутом "text-align: justify". Выравнивания не происходит, при этом образуется большое количество артефактов рейдринга. Ошибка проявляется только если в абзаце присутствует кириллица. Проверено: Qt 4.5 c MSVC8, Qt SDK v2009.01 и снапшот QtCreator v1.0.90. Нашел в оригинальном webkit аналогичную ошибку, но она исправлена в 2005м году: https://bugs.webkit.org/show_bug.cgi?id=5461 Что можно в дальнейшем предпринять? Вот проверочный код: Код
Название: Re: QtWebKit и text-align. Ошибка отрисовки. Отправлено: pastor от Апрель 15, 2009, 12:29 пиши баг репорт
Название: Re: QtWebKit и text-align. Ошибка отрисовки. Отправлено: Vd от Апрель 15, 2009, 19:49 Написал. Пока пришел только автоответ.
Название: Re: QtWebKit и text-align. Ошибка отрисовки. Отправлено: Vd от Апрель 16, 2009, 18:40 Завели багу:
http://www.qtsoftware.com/developer/task-tracker/index_html?id=251319+&method=entry Название: Re: QtWebKit и text-align. Ошибка отрисовки. Отправлено: mugabe от Апрель 30, 2009, 10:53 Столкнулся с подобной проблемой. По-скольку в троллевском баг-трекере стоит "Priority: No Priority, Scheduled for: Not scheduled", решил побороть проблему самостоятельно.
На сколько смог понять баг кроется в QPainter::drawText(const QPointF &p, const QString &str, int tf, int justificationPadding), который, кстати, не смотря на публичность не документирован. В его дебри решил не лезть, вместо этого сделал следующие исправления: /src/3rdparty/webkit/WebCore/platform/graphics/qt/FontQt.cpp было: Код
стало: Код
Т.е. строки отрисовываются через QTextLine::draw(...), который работает корректно (было замечено по строкам с выделением). Не уверен в корректности этого решения, т.к. QTextLine::draw(...) внутри выглядит пугающе :) Думаю может сказаться на производительности, но лично я визуально потерь не заметил. Но в любом случае, можете пользоваться и отписать об этом решении троллям (самому лениво на инглиш переводить) :) Если не поленитесь Вы, то не забудьте упоминуть, что баг кроется именно в QPainter::drawText(..., int justificationPadding). Думаю сами они быстрее с ним разберутся :) Название: Re: QtWebKit и text-align. Ошибка отрисовки. Отправлено: mugabe от Август 11, 2009, 09:05 Только что применяя свой же патч обнаружил его неработоспособность :)
Правильный код: Код
|