You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tde-packaging/opensuse/core/qt3/revert-qt-3.3.8-khmer-fix.diff

37 lines
1.9 KiB

according to bug 345459, this fix for stacking letters from 3.3.8
made it only a lot worse. revert.
--- src/kernel/qfontengine_x11.cpp
+++ src/kernel/qfontengine_x11.cpp
@@ -2672,23 +2655,16 @@ bool QOpenType::positionAndAdd(QShaperIt
// ###### fix the case where we have y advances. How do we handle this in Uniscribe?????
if (positions[i].new_advance) {
item->advances[i] = item->flags & QTextEngine::RightToLeft
- ? -qRound((positions[i].x_advance >> 6)*scale)
+ ? -qRound((positions[i].x_advance >> 6)*scale)
: qRound((positions[i].x_advance >> 6)*scale);
} else {
item->advances[i] += item->flags & QTextEngine::RightToLeft
- ? -qRound((positions[i].x_advance >> 6)*scale)
+ ? -qRound((positions[i].x_advance >> 6)*scale)
: qRound((positions[i].x_advance >> 6)*scale);
}
- int back = 0;
- item->offsets[i].x = qRound((positions[i].x_pos >> 6)*scale);
- item->offsets[i].y = qRound((positions[i].y_pos >> 6)*scale);
- while (positions[i-back].back) {
- back += positions[i - back].back;
- item->offsets[i].x += qRound((positions[i - back].x_pos >> 6)*scale);
- item->offsets[i].y += qRound((positions[i - back].y_pos >> 6)*scale);
- }
- item->offsets[i].y = -item->offsets[i].y;
- back = positions[i].back;
+ item->offsets[i].x = qRound((positions[i].x_pos >> 6)*scale);
+ item->offsets[i].y = -qRound((positions[i].y_pos >> 6)*scale);
+ int back = positions[i].back;
if (item->flags & QTextEngine::RightToLeft) {
while (back--) {
item->offsets[i].x -= item->advances[i-back];