summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorJiang Jiang <jiang.jiang@nokia.com>2011-01-24 18:09:38 (GMT)
committerJason McDonald <jason.mcdonald@nokia.com>2011-01-26 07:23:02 (GMT)
commit9b43b91a06b2ed454f0e715cfbbf7ab4de24c641 (patch)
treed623487b86f69520b70d9eebc3f2608a949737bc /src/gui
parent259ece8b7b78ebe6ef05ce140a83ebab284995a9 (diff)
downloadQt-9b43b91a06b2ed454f0e715cfbbf7ab4de24c641.zip
Qt-9b43b91a06b2ed454f0e715cfbbf7ab4de24c641.tar.gz
Qt-9b43b91a06b2ed454f0e715cfbbf7ab4de24c641.tar.bz2
Fix cursor position adjustment when removing strings
Commit 0ba1b4d0 introduced a regression to QTextDocument: it postponed cursor position adjustment until the move operation is done, but contentsChanged will be triggered by finishEdit() in this move operation, thus cursor positions in this signal handler will be in inconsistent states (normally we should first update cursor position then trigger contentsChanged). In this case we should also postpone finishEdit() handling after cursor positions have been adjusted, then the states expose to applications will be consistent. Task-number: QTBUG-15857 Reviewed-by: Eskil (cherry picked from commit 34c297faca93e1286573b2a01127e4e7af00aff2)
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/text/qtextdocument_p.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gui/text/qtextdocument_p.cpp b/src/gui/text/qtextdocument_p.cpp
index 498a432..2172f74 100644
--- a/src/gui/text/qtextdocument_p.cpp
+++ b/src/gui/text/qtextdocument_p.cpp
@@ -663,7 +663,8 @@ void QTextDocumentPrivate::move(int pos, int to, int length, QTextUndoCommand::O
Q_ASSERT(blocks.length() == fragments.length());
- finishEdit();
+ if (!blockCursorAdjustment)
+ finishEdit();
}
void QTextDocumentPrivate::remove(int pos, int length, QTextUndoCommand::Operation op)
@@ -678,6 +679,7 @@ void QTextDocumentPrivate::remove(int pos, int length, QTextUndoCommand::Operati
curs->changed = true;
}
}
+ finishEdit();
}
void QTextDocumentPrivate::setCharFormat(int pos, int length, const QTextCharFormat &newFormat, FormatChangeMode mode)