summaryrefslogtreecommitdiffstats
path: root/src/gui/text/qtextlayout.cpp
diff options
context:
space:
mode:
authorJiang Jiang <jiang.jiang@nokia.com>2011-09-19 13:20:13 +0200
committerJiang Jiang <jiang.jiang@nokia.com>2011-09-19 13:43:12 +0200
commitc750afe0e0f043389d30850070889946e4c6e8af (patch)
treeb4e43b5ba25974ff80d1c9f4e58b5598d6039f9f /src/gui/text/qtextlayout.cpp
parent67a1b5e50c1cc90e9c03d9f4cadc9912f6880e15 (diff)
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/qtextlayout.cpp')
-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 d0c1a0e7bf..a2662c4fe6 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();
}