From 7148a79775e31eb5e3053f82f4ee5a9ba702ddae Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Tue, 19 Mar 2013 15:04:44 +0100 Subject: Make sure that TextInteractionFlags get set. The first time the function is called, it could fail to set the flags. Calling setSelectByKeyboard(true) would not actually set the text interaction flags (was == on). The test didn't detect it because it called setReadOnly before setSelectByKeyboard. Change-Id: Ia54cc782b6ad5a74f1d7029c92fa230116d034b0 Reviewed-by: J-P Nurmi --- src/quick/items/qquicktextedit.cpp | 4 ++-- tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/quick/items/qquicktextedit.cpp b/src/quick/items/qquicktextedit.cpp index e30b9cb3fd..feabbba864 100644 --- a/src/quick/items/qquicktextedit.cpp +++ b/src/quick/items/qquicktextedit.cpp @@ -1265,8 +1265,8 @@ void QQuickTextEdit::setSelectByKeyboard(bool on) { Q_D(QQuickTextEdit); bool was = selectByKeyboard(); - d->selectByKeyboardSet = true; - if (was != on) { + if (!d->selectByKeyboardSet || was != on) { + d->selectByKeyboardSet = true; d->selectByKeyboard = on; if (on) d->control->setTextInteractionFlags(d->control->textInteractionFlags() | Qt::TextSelectableByKeyboard); diff --git a/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp b/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp index b9041fb719..bce1f9e4a2 100644 --- a/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp +++ b/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp @@ -2171,8 +2171,8 @@ void tst_qquicktextedit::keyboardSelection() QVERIFY(edit); edit->setText(text); - edit->setReadOnly(readOnly); edit->setSelectByKeyboard(selectByKeyboard); + edit->setReadOnly(readOnly); edit->setCursorPosition(cursorPosition); QQuickWindow window; -- cgit v1.2.3