aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuli Piippo <samuli.piippo@qt.io>2019-12-03 15:49:32 +0200
committerSamuli Piippo <samuli.piippo@qt.io>2019-12-09 10:49:24 +0000
commit0e1138182b072ba5cc02878c65db73abafbf5f33 (patch)
tree13b51438e6b3282b7a53f9224aafaf737b94484e
parentfe5aeead7bebda08b4bd3ad29aa472bf6794fb29 (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.cpp3
-rw-r--r--tests/auto/inputpanel/data/tst_inputpanel.qml6
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 },
]