summaryrefslogtreecommitdiffstats
path: root/src/gui/text
diff options
context:
space:
mode:
authorJiang Jiang <jiang.jiang@nokia.com>2011-09-19 11:20:13 (GMT)
committerJiang Jiang <jiang.jiang@nokia.com>2011-09-19 11:43:12 (GMT)
commitc750afe0e0f043389d30850070889946e4c6e8af (patch)
treeb4e43b5ba25974ff80d1c9f4e58b5598d6039f9f /src/gui/text
parent67a1b5e50c1cc90e9c03d9f4cadc9912f6880e15 (diff)
downloadQt-c750afe0e0f043389d30850070889946e4c6e8af.zip
Qt-c750afe0e0f043389d30850070889946e4c6e8af.tar.gz
Qt-c750afe0e0f043389d30850070889946e4c6e8af.tar.bz2
Make sure cursor position doesn't exceed line end
If we have trailing spaces at the end of a line, cursor will disappear because the position we returned exceeds line end, thus the widget border. By limiting it within line.width we can make sure it always visible, which is more consistent to the behavior in common platforms. Reviewed-by: Eskil
Diffstat (limited to 'src/gui/text')
-rw-r--r--src/gui/text/qtextlayout.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/gui/text/qtextlayout.cpp b/src/gui/text/qtextlayout.cpp
index d0c1a0e..a2662c4 100644
--- a/src/gui/text/qtextlayout.cpp
+++ b/src/gui/text/qtextlayout.cpp
@@ -2612,6 +2612,9 @@ qreal QTextLine::cursorToX(int *cursorPos, Edge edge) const
x += eng->offsetInLigature(si, pos, end, glyph_pos);
}
+ if (x > line.width)
+ x = line.width;
+
*cursorPos = pos + si->position;
return x.toReal();
}