summaryrefslogtreecommitdiffstats
path: root/opensuse/core/qt3/revert-qt-3.3.8-khmer-fix.diff
diff options
context:
space:
mode:
Diffstat (limited to 'opensuse/core/qt3/revert-qt-3.3.8-khmer-fix.diff')
-rw-r--r--opensuse/core/qt3/revert-qt-3.3.8-khmer-fix.diff36
1 files changed, 36 insertions, 0 deletions
diff --git a/opensuse/core/qt3/revert-qt-3.3.8-khmer-fix.diff b/opensuse/core/qt3/revert-qt-3.3.8-khmer-fix.diff
new file mode 100644
index 000000000..385e6111a
--- /dev/null
+++ b/opensuse/core/qt3/revert-qt-3.3.8-khmer-fix.diff
@@ -0,0 +1,36 @@
+
+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];