Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.15
-
None
-
-
e08b25efe4a7bec1004696bd23d9f8959158bd60 (qt/qtwayland/dev) 268e66f0b2561e6d2d65bb15067af6d959e30cce (qt/qtwayland/6.0) 560d8a3bb8853c3d5a20d23aec77ee00ba71b718 (qt/tqtc-qtwayland/tqtc/lts-5.15) 3aa1b351d0487346c8d8514239f161360cade686 (qt/qtwayland/6.1)
Description
Cannot upload a tarball due to some kind of token problem, so created a git repo. Links to the git repo is in the text below.
Setup Description:
QtWayland Compositor running the ivi-compositor example.
Patch applied to get Virtualkeyboard support. Patch is here: https://github.com/cbs101/qtvirtualkeyboard_problem/blob/master/qtwayland_ivi_compositor_example.patch
Virtualkeyboard is used in application mode in the QtWayland Compositor, i.e. when starting the compositor: export QT_IM_MODULE=qtvirtualkeyboard.
2 small demo applications are created.
app_digits:
https://github.com/cbs101/qtvirtualkeyboard_problem/tree/master/app_digits
app_upper:
https://github.com/cbs101/qtvirtualkeyboard_problem/tree/master/app_upper
Both demo application are really just a single textfield in a QML file.
app_digits and app_upper does NOT have any ties to virtualkeyboard in their source code. The is displayed using Wayland, and then the virtualkeyboard in wayland is given to these applications.
In app_digits, the textfield is limited by:
inputMethodHints: Qt.ImhSensitiveData | Qt.ImhDigitsOnly
In app_upper, the textfield is limited by:
inputMethodHints: Qt.ImhUppercaseOnly
Problem is seen on a iMX6 board where the QtWayland is running ontop of EGLFS, and i'm using the vivante drivers.
Expected Result:
The QtWayland ivi compositor is (vertical) split screen with 2 applications.
The compositor is started. Just after the compositor is running app_digits and app_upper is started shortly after each other. One of them with "export QT_IVI_SURFACE_ID=1337" to ensure one of them gets the leftArea in the ivi-compositor.
I expect when pressing the textfield in app_digits that a virtual keyboard pops up and shows only numeric digits.
I expect when pressing the textfield in app_upper that a virtual keyboard pops up and shows only upper case letters.
Seen Result:
Multiple cases happen. It seems fairly random what happens. But always one of the 5 cases below. Good case happen in ~10 % of attemps. Hence it becomes wrong almost every time.
Case 1 (the good case):
It does happen as expected.
Case 2 (bad):
When pressing the textfield app_digits, the virtual keyboard is shown with digits (expected). Then when pressing the textfield in app_upper, the virtual keyboard is shown with digits (NOT expected).
Case 3 (bad):
When pressing the textfield in app_upper, the virtual keyboard is shown with upper case letters (expected).
Then when pressing the textfield app_digits, the virtual keyboard is shown with upper case letters (NOT expected).
Case 4 (bad):
When pressing the textfield in app_upper, the virtual keyboard is shown with upper case letters (expected).
Then when pressing the textfield app_digits, the virtual keyboard is not shown (NOT expected)
Case 5 (bad):
When pressing the textfield app_digits, the virtual keyboard is shown with digits (expected).
Then when pressing the textfield app_upper, the virtual keyboard is not shown (NOT expected)
Note: If I insert a delay in between starting the 2 applications, the case case seem to go upwards of 95 %. Parallelism ? Are there limitations to starting more than 1 application at the same time when the applications themselves do not got the virtualkeyboard but they instead get it from QtWayland which has virtualkeyboard in application mode ?
Steps needed to Replicate the Problem:
Start the patched ivi compositor
Wait untill the Wayland compositor is running
Start the 2 applications: app_digits and app_upper.
Attachments
For Gerrit Dashboard: QTBUG-91096 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
335403,2 | Fix race condition when attaching client to text input | dev | qt/qtwayland | Status: MERGED | +2 | 0 |
340415,2 | Fix race condition when attaching client to text input | 6.0 | qt/qtwayland | Status: MERGED | +2 | 0 |
340416,2 | Fix race condition when attaching client to text input | 6.1 | qt/qtwayland | Status: MERGED | +2 | 0 |
340417,3 | Fix race condition when attaching client to text input | tqtc/lts-5.15 | qt/tqtc-qtwayland | Status: MERGED | +2 | 0 |