diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-06-23 17:57:34 +0200 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-06-26 17:37:08 +0200 |
commit | a58ec950f06c8de366b4b693491eaaafae116041 (patch) | |
tree | c10aaecbc9889faab54dd7d5f338bffacf8d55f0 /src/widgets/widgets | |
parent | 86802ec04d23c8ddc82268e18eb99d5f71450914 (diff) |
Accessibility: improve text attribute ranges
Improve consistency and use QTextDocument functions to find ranges
instead of coming up with our own scheme. This is important since
QCursor's char format depends on block positions.
Change-Id: I94eb137882dc6b5f7b01fa7693b4a536cc48d02a
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Diffstat (limited to 'src/widgets/widgets')
-rw-r--r-- | src/widgets/widgets/qwidgettextcontrol.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/widgets/widgets/qwidgettextcontrol.cpp b/src/widgets/widgets/qwidgettextcontrol.cpp index 54b20e36f5..da348e4edc 100644 --- a/src/widgets/widgets/qwidgettextcontrol.cpp +++ b/src/widgets/widgets/qwidgettextcontrol.cpp @@ -651,7 +651,9 @@ void QWidgetTextControlPrivate::_q_contentsChanged(int from, int charsRemoved, i if (QAccessible::isActive() && q->parent() && q->parent()->isWidgetType()) { QTextCursor tmp(doc); tmp.setPosition(from); - tmp.setPosition(from + charsAdded, QTextCursor::KeepAnchor); + // when setting a new text document the length is off + // QTBUG-32583 - characterCount is off by 1 requires the -1 + tmp.setPosition(qMin(doc->characterCount() - 1, from + charsAdded), QTextCursor::KeepAnchor); QString newText = tmp.selectedText(); // always report the right number of removed chars, but in lack of the real string use spaces |