Revert "QAndroidPlatformInputContext: send composition text and cursor jointly"

This reverts commit be3b9b2ab12f664c196d649e8c4247d70805d667.

Reason for revert: Caused QTBUG-121561

Fixes: QTBUG-121561
Pick-to: 6.6 6.5 6.2
Change-Id: I4b59d97ede6c50d2575a7d7cebbe2291983dd19f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
(cherry picked from commit 46502f9705634f02626ee1057975463d1c0ae1f8)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Axel Spoerl 2024-03-05 08:36:56 +00:00 committed by Qt Cherry-pick Bot
parent d50746ef3a
commit c76dd919fd
2 changed files with 20 additions and 42 deletions

View File

@ -1194,13 +1194,21 @@ bool QAndroidInputContext::focusObjectStopComposing()
m_composingCursor = -1;
// commit composing text and cursor position
QList<QInputMethodEvent::Attribute> attributes;
attributes.append(
QInputMethodEvent::Attribute(QInputMethodEvent::Selection, localCursorPos, 0));
QInputMethodEvent event(QString(), attributes);
event.setCommitString(m_composingText);
sendInputMethodEvent(&event);
{
// commit the composing test
QList<QInputMethodEvent::Attribute> attributes;
QInputMethodEvent event(QString(), attributes);
event.setCommitString(m_composingText);
sendInputMethodEvent(&event);
}
{
// Moving Qt's cursor to where the preedit cursor used to be
QList<QInputMethodEvent::Attribute> attributes;
attributes.append(
QInputMethodEvent::Attribute(QInputMethodEvent::Selection, localCursorPos, 0));
QInputMethodEvent event(QString(), attributes);
sendInputMethodEvent(&event);
}
return true;
}

View File

@ -1595,44 +1595,14 @@ void tst_QLineEdit::textMask()
QCOMPARE( testWidget->text(), insertString );
}
class LineEditChangingText : public QLineEdit
{
Q_OBJECT
public:
LineEditChangingText(QWidget *parent) : QLineEdit(parent)
{
connect(this, &QLineEdit::textEdited, this, &LineEditChangingText::onTextEdited);
}
public slots:
void onTextEdited(const QString &text)
{
if (text.length() == 3)
setText(text + "-");
}
};
void tst_QLineEdit::setText()
{
QLineEdit *testWidget = ensureTestWidget();
{
QSignalSpy editedSpy(testWidget, &QLineEdit::textEdited);
QSignalSpy changedSpy(testWidget, &QLineEdit::textChanged);
testWidget->setText("hello");
QCOMPARE(editedSpy.size(), 0);
QCOMPARE(changedSpy.value(0).value(0).toString(), QString("hello"));
}
QTestEventList keys;
keys.addKeyClick(Qt::Key_A);
keys.addKeyClick(Qt::Key_B);
keys.addKeyClick(Qt::Key_C);
LineEditChangingText lineEdit(nullptr);
keys.simulate(&lineEdit);
QCOMPARE(lineEdit.text(), "abc-");
QCOMPARE(lineEdit.cursorPosition(), 4);
QSignalSpy editedSpy(testWidget, SIGNAL(textEdited(QString)));
QSignalSpy changedSpy(testWidget, SIGNAL(textChanged(QString)));
testWidget->setText("hello");
QCOMPARE(editedSpy.size(), 0);
QCOMPARE(changedSpy.value(0).value(0).toString(), QString("hello"));
}
void tst_QLineEdit::displayText_data()