Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
6.4.2, 6.7.2
-
None
Description
I created a very simple QT application using the QT Web Engine together with the virtual keyboard based on the small example here: https://doc.qt.io/qt-6/qtvirtualkeyboard-deployment-guide.html#creating-inputpanel
In windowed mode everything looks fine but if the application is build with visibility: Window.Fullscreen the keyboard is not rendered correctly:
As far as I could figure out the problem seems to be due to a circular definition of the key sizes and a race condition in the layout process.
The key sizes are defined as:
readonly property real normalKeyWidth: normalKey.width readonly property real functionKeyWidth: mapFromItem(normalKey, normalKey.width / 2, 0).x
The final size of the "normal" keys is only known after the layout has been finalized. But this also depends on the sizes of the "function" keys.
In windowed mode the layouting seems to start with a width of 0 for the function keys, updates the size of the normal keys which then updates the size of the function keys. These steps loop until stable values are reached.
In full screen mode (ApplicationWindow visibility: Window.Fullscreen) only a single iteration of rendering seems to happen, leaving the function keys with a width of 0 although the properties are updated correctly.
qml: normalKeyWidth 103 qml: functionKeyWidth 0 qml: normalKeyWidth 103 qml: functionKeyWidth 153.5 qml: normalKeyWidth 102 qml: functionKeyWidth 153.5 qml: normalKeyWidth 102 qml: functionKeyWidth 153
Is this an already known problem for which maybe a workaround already exists? I could assign static weights to the normal and function keys but that would mean I need to update all layout files.