Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-98095

REG[5.15.3 -> 5.15.5] Android Keyboard is not changing when switching on input field of different input method hint

    XMLWordPrintable

Details

    • Android
    • 2022wk02FOAndroid&Automotive

    Description

      Can be reproduced with below qml

      import QtQuick 2.12
      import QtQuick.Controls 2.12
      import QtQuick.Window 2.12
      
      Window {
          //width: 640
          //height: 480
          visible: true
          title: qsTr("Hello World")
          Rectangle {
              //width: 1280
              //height: 720
              anchors.fill: parent
              color: "#F6F6F6"
      
              // Only set with CONFIG+=disable-desktop.
              //property bool handwritingInputPanelActive: false
      
              Flickable {
                  id: flickable
                  anchors.fill: parent
                  contentWidth: content.width
                  contentHeight: content.height
                  interactive: contentHeight > height
                  flickableDirection: Flickable.VerticalFlick
      
                  property real scrollMarginVertical: 20
      
                  ScrollBar.vertical: ScrollBar {}
      
                  MouseArea  {
                      id: content
                      width: flickable.width
                      height: textEditors.height + 24
      
                      onClicked: focus = true
      
                      Column {
                          id: textEditors
                          spacing: 15
                          x: 12
                          y: 12
                          width: parent.width - 26
      
                          Label {
                              color: "#565758"
                              text: "Tap fields to enter text"
                              anchors.horizontalCenter: parent.horizontalCenter
                              font.pixelSize: 22
                          }
                          TextField {
                              width: parent.width
                              placeholderText: "One line field"
                              //enterKeyAction: EnterKeyAction.Next
                              onAccepted: passwordField.focus = true
                          }
                          TextField {
                              id: passwordField
                              width: parent.width
                              echoMode: TextInput.Password
                              placeholderText: "Password field"
                              inputMethodHints: Qt.ImhNoAutoUppercase | Qt.ImhPreferLowercase | Qt.ImhSensitiveData | Qt.ImhNoPredictiveText
                              //enterKeyAction: EnterKeyAction.Next
                              onAccepted: upperCaseField.focus = true
                          }
                          TextField {
                              id: upperCaseField
                              width: parent.width
                              placeholderText: "Upper case field"
                              inputMethodHints: Qt.ImhUppercaseOnly
                              //enterKeyAction: EnterKeyAction.Next
                              onAccepted: lowerCaseField.focus = true
                          }
                          TextField {
                              id: lowerCaseField
                              width: parent.width
                              placeholderText: "Lower case field"
                              inputMethodHints: Qt.ImhLowercaseOnly
                              //enterKeyAction: EnterKeyAction.Next
                              onAccepted: phoneNumberField.focus = true
                          }
                          TextField {
                              id: phoneNumberField
                              validator: RegExpValidator { regExp: /^[0-9\+\-\#\*\ ]{6,}$/ }
                              width: parent.width
                              placeholderText: "Phone number field"
                              inputMethodHints: Qt.ImhDialableCharactersOnly
                              //enterKeyAction: EnterKeyAction.Next
                              onAccepted: formattedNumberField.focus = true
                          }
                          TextField {
                              id: formattedNumberField
                              width: parent.width
                              placeholderText: "Formatted number field"
                              inputMethodHints: Qt.ImhFormattedNumbersOnly
                              //enterKeyAction: EnterKeyAction.Next
                              onAccepted: digitsField.focus = true
                          }
                          TextField {
                              id: digitsField
                              width: parent.width
                              placeholderText: "Digits only field"
                              inputMethodHints: Qt.ImhDigitsOnly
                              //enterKeyAction: EnterKeyAction.Next
                              onAccepted: textArea.focus = true
                          }
                          TextArea {
                              id: textArea
                              width: parent.width
                              placeholderText: "Multiple line field"
                              height: Math.max(206, implicitHeight)
                          }
                      }
                  }
              }
      
              // Hide the text fields' cursors when fullscreen handwriting is active.
      
          }
      }
      
      

      Most likely it is a regression from the below change, which stopping calling showSoftwareKeyboard when the keyboard is already visible

      https://codereview.qt-project.org/c/qt/tqtc-qtbase/+/340974

      Attachments

        1. 1+7t_andr11-on-qt-63alpha-isthisrepro.mp4
          13.04 MB
          Rami Potinkara
        2. 1+7t_andr11-on-qt-63alpha-notrepro.mp4
          1.30 MB
          Rami Potinkara
        3. 92051-1+7t-with-ifnotisInputPanelVisible-traces_2.mp4
          8.32 MB
          Rami Potinkara
        4. 92051-1+7t-with-ifnotisInputPanelVisible-traces_2.txt
          9 kB
          Rami Potinkara
        5. 92051-1+7t-with-ifnotisInputPanelVisible-traces.mp4
          4.94 MB
          Rami Potinkara
        6. 92051-1+7t-with-ifnotisInputPanelVisible-traces.txt
          7 kB
          Rami Potinkara
        7. 92051-traces.diff
          1 kB
          Rami Potinkara

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              rampe Rami Potinkara
              yifei Yi Fei (Inactive)
              Votes:
              1 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes