Details
-
Bug
-
Resolution: Invalid
-
P3: Somewhat important
-
None
-
6.5.2
Description
Here is a sample:
Window { id: root width: Screen.width height: Screen.height visible: true Column { Rectangle { width: root.width - 100 height: 50 border.color: "#000000" TextInput { id: input anchors.fill: parent anchors.margins: 1 maximumLength: 15 } } Text { text: `PreeditText: ${input.preeditText}` } Text { text: `DisplayText: ${input.displayText}` } } }
On Windows:
If input method is English, then everything is fine, that user can only type in up to 15 letters.
But if the input has preeditText, e.g. Japanese, then the string being displayed during user input can be arbitrarily long. The string is only chopped off after being actually entered.
Strangely, Chinese input is not affected.
On Android (11):
The problem is prevalent since even English input has preeditText. Then whenever user is typing anything, the string being displayed on screen can exceeds limit until string is entered.
Some screenshots are attached. It can be observed that preeditText, so does the temporary string being displayed, can exceed limit for Japanese input on Windows. English input on Windows is all good since it does not have preeditText. But Chinese input is unexpectedly limiting the preeditText too. And on Android, English input is not being constrained at all due to preeditText. Nevertheless, excessive letters/characters are automatically removed after being entered on all platforms for all input methods.
inputMask is affected in the same way. For example:
inputMask: "aaaaaaaaaaaaaaa"
does not limits the length of preeditText but chops it off after entering.