src/gui/text/qtextlayout.cpp
changeset 18 2f34d5167611
parent 3 41300fa6a67c
child 19 fcece45ef507
--- a/src/gui/text/qtextlayout.cpp	Tue Feb 02 00:43:10 2010 +0200
+++ b/src/gui/text/qtextlayout.cpp	Fri Apr 16 15:50:13 2010 +0300
@@ -1,6 +1,6 @@
 /****************************************************************************
 **
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
 ** All rights reserved.
 ** Contact: Nokia Corporation (qt-info@nokia.com)
 **
@@ -1331,7 +1331,7 @@
     QTextLine l(line, d);
     const QScriptLine &sl = d->lines[line];
 
-    const qreal x = position.x() + l.cursorToX(cursorPosition);
+    qreal x = position.x() + l.cursorToX(cursorPosition);
 
     int itm = d->findItem(cursorPosition - 1);
     QFixed base = sl.base();
@@ -1350,6 +1350,10 @@
                               && (p->transform().type() > QTransform::TxTranslate);
     if (toggleAntialiasing)
         p->setRenderHint(QPainter::Antialiasing);
+#if defined(QT_MAC_USE_COCOA)
+    // Always draw the cursor aligned to pixel boundary.
+    x = qRound(x);
+#endif
     p->fillRect(QRectF(x, y, qreal(width), (base + descent + 1).toReal()), p->pen().brush());
     if (toggleAntialiasing)
         p->setRenderHint(QPainter::Antialiasing, false);