diff options
author | Samuli Piippo <samuli.piippo@qt.io> | 2019-12-03 15:49:32 +0200 |
---|---|---|
committer | Samuli Piippo <samuli.piippo@qt.io> | 2019-12-09 10:49:24 +0000 |
commit | 0e1138182b072ba5cc02878c65db73abafbf5f33 (patch) | |
tree | 13b51438e6b3282b7a53f9224aafaf737b94484e | |
parent | fe5aeead7bebda08b4bd3ad29aa472bf6794fb29 (diff) |
Allow shift toggle with Qt::ImhNoAutoUppercase
Qt::ImhNoAutoUppercase means that the input method should not try to
automatically switch to upper case when a sentence ends. QtVKB was
using it also to make shift work as caps lock. Change the behavior
so that the shift key affects only the next character.
[ChangeLog] Using Qt::ImhNoAutoUppercase hint (used also with password
fields) no longer makes shift key function as a caps lock.
Change-Id: I231c8d192a67e19f04bc4d3fcf0bc9c676a12830
Task-number: QTBUG-80058
Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
-rw-r--r-- | src/virtualkeyboard/shifthandler.cpp | 3 | ||||
-rw-r--r-- | tests/auto/inputpanel/data/tst_inputpanel.qml | 6 |
2 files changed, 4 insertions, 5 deletions
diff --git a/src/virtualkeyboard/shifthandler.cpp b/src/virtualkeyboard/shifthandler.cpp index f2118952..d268282e 100644 --- a/src/virtualkeyboard/shifthandler.cpp +++ b/src/virtualkeyboard/shifthandler.cpp @@ -220,8 +220,7 @@ void ShiftHandler::toggleShift() if (d->manualShiftLanguageFilter.contains(d->locale.language())) { setCapsLockActive(false); setShiftActive(!d->shift); - } else if (d->inputContext->inputMethodHints() & Qt::ImhNoAutoUppercase || - d->manualCapsInputModeFilter.contains(d->inputContext->inputEngine()->inputMode())) { + } else if (d->manualCapsInputModeFilter.contains(d->inputContext->inputEngine()->inputMode())) { bool capsLock = d->capsLock; setCapsLockActive(!capsLock); setShiftActive(!capsLock); diff --git a/tests/auto/inputpanel/data/tst_inputpanel.qml b/tests/auto/inputpanel/data/tst_inputpanel.qml index 44a718c0..4e9121b1 100644 --- a/tests/auto/inputpanel/data/tst_inputpanel.qml +++ b/tests/auto/inputpanel/data/tst_inputpanel.qml @@ -424,9 +424,9 @@ Rectangle { { initInputMethodHints: Qt.ImhNoPredictiveText, toggleShiftCount: 0, inputSequence: "aaa bbb", outputText: "Aaa bbb", autoCapitalizationEnabled: true, toggleShiftEnabled: true }, { initInputMethodHints: Qt.ImhNoPredictiveText, toggleShiftCount: 1, inputSequence: "aaa bbb", outputText: "aaa bbb", autoCapitalizationEnabled: true, toggleShiftEnabled: true }, { initInputMethodHints: Qt.ImhNoPredictiveText | Qt.ImhNoAutoUppercase, toggleShiftCount: 0, inputSequence: "aaa bbb", outputText: "aaa bbb", autoCapitalizationEnabled: false, toggleShiftEnabled: true }, - { initInputMethodHints: Qt.ImhNoPredictiveText | Qt.ImhNoAutoUppercase, toggleShiftCount: 1, inputSequence: "aaa bbb", outputText: "AAA BBB", autoCapitalizationEnabled: false, toggleShiftEnabled: true }, - { initInputMethodHints: Qt.ImhNoPredictiveText | Qt.ImhNoAutoUppercase, toggleShiftCount: 2, inputSequence: "aaa bbb", outputText: "aaa bbb", autoCapitalizationEnabled: false, toggleShiftEnabled: true }, - { initInputMethodHints: Qt.ImhNoPredictiveText | Qt.ImhNoAutoUppercase, toggleShiftCount: 3, inputSequence: "aaa bbb", outputText: "AAA BBB", autoCapitalizationEnabled: false, toggleShiftEnabled: true }, + { initInputMethodHints: Qt.ImhNoPredictiveText | Qt.ImhNoAutoUppercase, toggleShiftCount: 0, inputSequence: "aaa. bbb", outputText: "aaa. bbb", autoCapitalizationEnabled: false, toggleShiftEnabled: true }, + { initInputMethodHints: Qt.ImhNoPredictiveText | Qt.ImhNoAutoUppercase, toggleShiftCount: 1, inputSequence: "aaa bbb", outputText: "Aaa bbb", autoCapitalizationEnabled: false, toggleShiftEnabled: true }, + { initInputMethodHints: Qt.ImhNoPredictiveText | Qt.ImhNoAutoUppercase, toggleShiftCount: 2, inputSequence: "aaa bbb", outputText: "AAA BBB", autoCapitalizationEnabled: false, toggleShiftEnabled: true }, { initInputMethodHints: Qt.ImhNoPredictiveText, initLocale: "ar_AR", toggleShiftCount: 0, inputSequence: "\u0645\u0631\u062D\u0628\u0627", outputText: "\u0645\u0631\u062D\u0628\u0627", autoCapitalizationEnabled: false, toggleShiftEnabled: true }, { initInputMethodHints: Qt.ImhNoPredictiveText, initLocale: "hi_IN", toggleShiftCount: 0, inputSequence: "\u0928\u092E\u0938\u094D\u0915\u093E\u0930", outputText: "\u0928\u092E\u0938\u094D\u0915\u093E\u0930", autoCapitalizationEnabled: false, toggleShiftEnabled: true }, ] |