Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package qt6-virtualkeyboard for 
openSUSE:Factory checked in at 2023-10-02 20:05:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qt6-virtualkeyboard (Old)
 and      /work/SRC/openSUSE:Factory/.qt6-virtualkeyboard.new.28202 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "qt6-virtualkeyboard"

Mon Oct  2 20:05:52 2023 rev:21 rq:1114518 version:6.5.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/qt6-virtualkeyboard/qt6-virtualkeyboard.changes  
2023-07-26 13:23:39.059893595 +0200
+++ 
/work/SRC/openSUSE:Factory/.qt6-virtualkeyboard.new.28202/qt6-virtualkeyboard.changes
       2023-10-02 20:08:00.050115377 +0200
@@ -1,0 +2,6 @@
+Thu Sep 28 07:34:23 UTC 2023 - Christophe Marin <christo...@krop.fr>
+
+- Update to 6.5.3
+  * https://www.qt.io/blog/qt-6.5.3-released
+
+-------------------------------------------------------------------

Old:
----
  qtvirtualkeyboard-everywhere-src-6.5.2.tar.xz

New:
----
  qtvirtualkeyboard-everywhere-src-6.5.3.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ qt6-virtualkeyboard.spec ++++++
--- /var/tmp/diff_new_pack.8F6i6K/_old  2023-10-02 20:08:01.222157527 +0200
+++ /var/tmp/diff_new_pack.8F6i6K/_new  2023-10-02 20:08:01.222157527 +0200
@@ -16,7 +16,7 @@
 #
 
 
-%define real_version 6.5.2
+%define real_version 6.5.3
 %define short_version 6.5
 %define tar_name qtvirtualkeyboard-everywhere-src
 %define tar_suffix %{nil}
@@ -27,12 +27,12 @@
 %endif
 #
 Name:           qt6-virtualkeyboard%{?pkg_suffix}
-Version:        6.5.2
+Version:        6.5.3
 Release:        0
 Summary:        Framework for writing or integrating input methods and engines 
for Qt 6
 License:        GPL-3.0-only
 URL:            https://www.qt.io
-Source:         
https://www.nic.funet.fi/pub/mirrors/download.qt-project.org/official_releases/qt/%{short_version}/%{real_version}%{tar_suffix}/submodules/%{tar_name}-%{real_version}%{tar_suffix}.tar.xz
+Source:         
https://download.qt.io/official_releases/qt/%{short_version}/%{real_version}%{tar_suffix}/submodules/%{tar_name}-%{real_version}%{tar_suffix}.tar.xz
 Source99:       qt6-virtualkeyboard-rpmlintrc
 BuildRequires:  pkgconfig
 BuildRequires:  qt6-core-private-devel

++++++ qtvirtualkeyboard-everywhere-src-6.5.2.tar.xz -> 
qtvirtualkeyboard-everywhere-src-6.5.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtvirtualkeyboard-everywhere-src-6.5.2/.cmake.conf 
new/qtvirtualkeyboard-everywhere-src-6.5.3/.cmake.conf
--- old/qtvirtualkeyboard-everywhere-src-6.5.2/.cmake.conf      2023-07-07 
18:22:14.000000000 +0200
+++ new/qtvirtualkeyboard-everywhere-src-6.5.3/.cmake.conf      2023-09-24 
13:38:43.000000000 +0200
@@ -1,3 +1,3 @@
-set(QT_REPO_MODULE_VERSION "6.5.2")
+set(QT_REPO_MODULE_VERSION "6.5.3")
 set(QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT "alpha1")
 set(QT_EXTRA_INTERNAL_TARGET_DEFINES "QT_NO_AS_CONST=1")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtvirtualkeyboard-everywhere-src-6.5.2/.tag 
new/qtvirtualkeyboard-everywhere-src-6.5.3/.tag
--- old/qtvirtualkeyboard-everywhere-src-6.5.2/.tag     2023-07-07 
18:22:14.000000000 +0200
+++ new/qtvirtualkeyboard-everywhere-src-6.5.3/.tag     2023-09-24 
13:38:43.000000000 +0200
@@ -1 +1 @@
-d642710f70d359cc8b22cb76c77ed6309f82d390
+c66959558dc22a60240aba90d56431f22225b514
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtvirtualkeyboard-everywhere-src-6.5.2/dependencies.yaml 
new/qtvirtualkeyboard-everywhere-src-6.5.3/dependencies.yaml
--- old/qtvirtualkeyboard-everywhere-src-6.5.2/dependencies.yaml        
2023-07-07 18:22:14.000000000 +0200
+++ new/qtvirtualkeyboard-everywhere-src-6.5.3/dependencies.yaml        
2023-09-24 13:38:43.000000000 +0200
@@ -1,13 +1,13 @@
 dependencies:
   ../qtbase:
-    ref: af457a9f0f7eb1a2a7d11f495da508faab91a442
+    ref: 372eaedc5b8c771c46acc4c96e91bbade4ca3624
     required: true
   ../qtdeclarative:
-    ref: f289063ff19588a11dd79213632785cfda2909a0
+    ref: e00c258fa5a4e122636d441967dea035865fac5d
     required: true
   ../qtmultimedia:
-    ref: ca330332aae05023983dcf445f0b388070289c51
+    ref: 0762bb1e91495527f0978232212521c49291f7de
     required: false
   ../qtsvg:
-    ref: 73757fd3c46eb0bf499c5770bc846851c14e42ae
+    ref: 220cd8c6261552f0fcf47061c64f862adae29b55
     required: true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtvirtualkeyboard-everywhere-src-6.5.2/src/components/Keyboard.qml 
new/qtvirtualkeyboard-everywhere-src-6.5.3/src/components/Keyboard.qml
--- old/qtvirtualkeyboard-everywhere-src-6.5.2/src/components/Keyboard.qml      
2023-07-07 18:22:14.000000000 +0200
+++ new/qtvirtualkeyboard-everywhere-src-6.5.3/src/components/Keyboard.qml      
2023-09-24 13:38:43.000000000 +0200
@@ -19,6 +19,12 @@
     property alias style: styleLoader.item
     property alias wordCandidateView: wordCandidateView
     property alias shadowInputControl: shadowInputControl
+    property alias alternativeKeys: alternativeKeys
+    property alias characterPreview: characterPreview
+    property alias wordCandidateContextMenu: wordCandidateContextMenu
+    property alias fullScreenModeSelectionControl: 
fullScreenModeSelectionControl
+    property alias naviationHighlight: naviationHighlight
+    property alias keyboardInputArea: keyboardInputArea
     property Item activeKey: null
     property TouchPoint activeTouchPoint
     property int localeIndex: -1
@@ -58,6 +64,8 @@
     property alias soundEffect: soundEffect
     property alias keyboardLayoutLoader: keyboardLayoutLoader
     property real screenHeight: parent.parent ? parent.parent.height : 
Screen.height
+    property bool noAnimations
+    property int pressAndHoldDelay: 500
 
     function initDefaultInputMethod() {
         try {
@@ -203,22 +211,19 @@
                     }
                 }
                 initialKey = keyboardInputArea.initialKey
-                if (!keyboardInputArea.navigateToNextKey(-1, 0, false)) {
+                if (!keyboardInputArea.navigateToNextKey(-1 * direction, 0, 
false)) {
                     keyboardInputArea.initialKey = initialKey
                     if (!keyboardInputArea.navigateToNextKey(0, -1 * 
direction, false)) {
                         if (wordCandidateView.count) {
-                            if (wordCandidateView.count) {
-                                wordCandidateView.currentIndex =
-                                        
wordCandidateView.effectiveLayoutDirection == Qt.LeftToRight ?
-                                            (wordCandidateView.count - 1) : 0
-                                break
-                            }
+                            wordCandidateView.currentIndex =
+                                    wordCandidateView.effectiveLayoutDirection 
== Qt.LeftToRight ?
+                                        (wordCandidateView.count - 1) : 0
                             break
                         }
                         keyboardInputArea.initialKey = initialKey
                         keyboardInputArea.navigateToNextKey(0, -1 * direction, 
true)
                     }
-                    keyboardInputArea.navigateToNextKey(-1, 0, true)
+                    keyboardInputArea.navigateToNextKey(-1 * direction, 0, 
true)
                 }
                 break
             case Qt.Key_Up:
@@ -315,7 +320,7 @@
                     }
                 }
                 initialKey = keyboardInputArea.initialKey
-                if (!keyboardInputArea.navigateToNextKey(1, 0, false)) {
+                if (!keyboardInputArea.navigateToNextKey(1 * direction, 0, 
false)) {
                     keyboardInputArea.initialKey = initialKey
                     if (!keyboardInputArea.navigateToNextKey(0, 1 * direction, 
false)) {
                         if (wordCandidateView.count) {
@@ -327,7 +332,7 @@
                         keyboardInputArea.initialKey = initialKey
                         keyboardInputArea.navigateToNextKey(0, 1 * direction, 
true)
                     }
-                    keyboardInputArea.navigateToNextKey(1, 0, true)
+                    keyboardInputArea.navigateToNextKey(1 * direction, 0, true)
                 }
                 break
             case Qt.Key_Down:
@@ -504,7 +509,7 @@
     }
     Timer {
         id: pressAndHoldTimer
-        interval: 500
+        interval: keyboard.pressAndHoldDelay
         onTriggered: {
             if (keyboard.activeKey && keyboard.activeKey === 
keyboardInputArea.initialKey) {
                 var origin = keyboard.mapFromItem(activeKey, activeKey.width / 
2, 0)
@@ -616,12 +621,8 @@
         }
         // Note: without "highlightItem.x - highlightItem.x" the binding does 
not work for alternativeKeys
         property var highlightItemOffset: highlightItem ? 
keyboard.mapFromItem(highlightItem, highlightItem.x - highlightItem.x, 
highlightItem.y - highlightItem.y) : ({x:0, y:0})
-        property int moveDuration: 200
-        property int resizeDuration: 200
-        property alias xAnimation: xAnimation
-        property alias yAnimation: yAnimation
-        property alias widthAnimation: widthAnimation
-        property alias heightAnimation: heightAnimation
+        property int moveDuration: !keyboard.noAnimations ? 200 : 0
+        property int resizeDuration: !keyboard.noAnimations ? 200 : 0
         z: 2
         x: highlightItemOffset.x
         y: highlightItemOffset.y
@@ -679,6 +680,7 @@
     }
 
     SelectionControl {
+        id: fullScreenModeSelectionControl
         objectName: "fullScreenModeSelectionControl"
         inputContext: InputContext.priv.shadow
         anchors.top: shadowInputControl.top
@@ -707,8 +709,8 @@
         highlight: style.selectionListHighlight ? style.selectionListHighlight 
: defaultHighlight
         highlightMoveDuration: 0
         highlightResizeDuration: 0
-        add: style.selectionListAdd
-        remove: style.selectionListRemove
+        add: !keyboard.noAnimations ? style.selectionListAdd : null
+        remove: !keyboard.noAnimations ? style.selectionListRemove : null
         keyNavigationWraps: true
         model: InputContext.inputEngine.wordCandidateListModel
         onCurrentItemChanged: if (currentItem) 
soundEffect.register(currentItem.soundEffect)
@@ -769,7 +771,7 @@
             id: wordCandidateViewTransition
             from: ""
             to: "visible"
-            enabled: !InputContext.animating
+            enabled: !InputContext.animating && !keyboard.noAnimations
             reversible: true
             ParallelAnimation {
                 NumberAnimation {
@@ -1214,8 +1216,8 @@
             model: languageListModel
             delegate: keyboard.style ? keyboard.style.languageListDelegate : 
null
             highlight: keyboard.style ? keyboard.style.languageListHighlight : 
defaultHighlight
-            add: keyboard.style ? keyboard.style.languageListAdd : null
-            remove: keyboard.style ? keyboard.style.languageListRemove : null
+            add: keyboard.style && !keyboard.noAnimations ? 
keyboard.style.languageListAdd : null
+            remove: keyboard.style && !keyboard.noAnimations ? 
keyboard.style.languageListRemove : null
             property rect previewRect: Qt.rect(keyboard.x + 
languagePopupList.x,
                                                keyboard.y + 
languagePopupList.y,
                                                languagePopupList.width,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtvirtualkeyboard-everywhere-src-6.5.2/src/components/PopupList.qml 
new/qtvirtualkeyboard-everywhere-src-6.5.3/src/components/PopupList.qml
--- old/qtvirtualkeyboard-everywhere-src-6.5.2/src/components/PopupList.qml     
2023-07-07 18:22:14.000000000 +0200
+++ new/qtvirtualkeyboard-everywhere-src-6.5.3/src/components/PopupList.qml     
2023-09-24 13:38:43.000000000 +0200
@@ -20,8 +20,8 @@
     highlight: keyboard.style.popupListHighlight ? 
keyboard.style.popupListHighlight : defaultHighlight
     highlightMoveDuration: 0
     highlightResizeDuration: 0
-    add: keyboard.style.popupListAdd
-    remove: keyboard.style.popupListRemove
+    add: !keyboard.noAnimations ? keyboard.style.popupListAdd : null
+    remove: !keyboard.noAnimations ? keyboard.style.popupListRemove : null
     keyNavigationWraps: true
 
     onCurrentItemChanged: if (currentItem) 
keyboard.soundEffect.register(currentItem.soundEffect)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtvirtualkeyboard-everywhere-src-6.5.2/src/layouts/zh_TW/main.qml 
new/qtvirtualkeyboard-everywhere-src-6.5.3/src/layouts/zh_TW/main.qml
--- old/qtvirtualkeyboard-everywhere-src-6.5.2/src/layouts/zh_TW/main.qml       
2023-07-07 18:22:14.000000000 +0200
+++ new/qtvirtualkeyboard-everywhere-src-6.5.3/src/layouts/zh_TW/main.qml       
2023-09-24 13:38:43.000000000 +0200
@@ -11,7 +11,16 @@
         return Qt.createQmlObject('import QtQuick; import 
QtQuick.VirtualKeyboard.Plugins; TCInputMethod {}', parent, "main.qml")
     }
     sharedLayouts: ['symbols']
-    sourceComponent: InputContext.inputEngine.inputMode === 
InputEngine.InputMode.Cangjie ? pageCangjie : pageZhuyin
+    sourceComponent: {
+        switch (InputContext.inputEngine.inputMode) {
+        case InputEngine.InputMode.Cangjie:
+            return pageCangjie
+        case InputEngine.InputMode.Zhuyin:
+            return pageZhuyin
+        default:
+            return null
+        }
+    }
     Component {
         id: pageCangjie
         KeyboardLayout {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtvirtualkeyboard-everywhere-src-6.5.2/src/plugins/myscript/plugin/CMakeLists.txt
 
new/qtvirtualkeyboard-everywhere-src-6.5.3/src/plugins/myscript/plugin/CMakeLists.txt
--- 
old/qtvirtualkeyboard-everywhere-src-6.5.2/src/plugins/myscript/plugin/CMakeLists.txt
       2023-07-07 18:22:14.000000000 +0200
+++ 
new/qtvirtualkeyboard-everywhere-src-6.5.3/src/plugins/myscript/plugin/CMakeLists.txt
       2023-09-24 13:38:43.000000000 +0200
@@ -31,7 +31,6 @@
         ${MyScript_ROOT_DIR}/voim/api/c/examples/common/Properties.c
         myscriptinputmethod.cpp myscriptinputmethod_p.h
         myscriptinputmethod_p_p.h
-        myscriptplugin.cpp myscriptplugin.h
     DEFINES
         
MYSCRIPT_CERTIFICATE="${MyScript_ROOT_DIR}/edk/c/examples/certificates/MyCertificate.c"
         
MYSCRIPT_VOIM_PROPERTY_PATH="${MYSCRIPT_INSTALL_DATA}/${MYSCRIPT_VOIM_PROPERTY_NAME}"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtvirtualkeyboard-everywhere-src-6.5.2/src/settings/qquickvirtualkeyboardsettings.cpp
 
new/qtvirtualkeyboard-everywhere-src-6.5.3/src/settings/qquickvirtualkeyboardsettings.cpp
--- 
old/qtvirtualkeyboard-everywhere-src-6.5.2/src/settings/qquickvirtualkeyboardsettings.cpp
   2023-07-07 18:22:14.000000000 +0200
+++ 
new/qtvirtualkeyboard-everywhere-src-6.5.3/src/settings/qquickvirtualkeyboardsettings.cpp
   2023-09-24 13:38:43.000000000 +0200
@@ -10,6 +10,7 @@
 #include <QDir>
 #include <QRegularExpression>
 #include <QtCore/private/qobject_p.h>
+#include <QtCore/qmutex.h>
 
 QT_BEGIN_NAMESPACE
 namespace QtVirtualKeyboard {
@@ -62,6 +63,9 @@
             stylePathList += stylesPath;
         }
 
+        // Path for backwards compatibility
+        stylePathList << 
QLatin1String("qrc:/QtQuick/VirtualKeyboard/content/styles/");
+
         for (const QString &stylePath : std::as_const(stylePathList)) {
             QString filePath = buildStyleFilePath(stylePath, name);
             bool pathExist = false;
@@ -152,10 +156,18 @@
 
 /*!
     \internal
+    TODO: Remove this method when QML stops creating separate singleton 
instances for each version.
  */
-QQuickVirtualKeyboardSettings 
*QQuickVirtualKeyboardSettings::create(QQmlEngine *qmlEngine, QJSEngine *)
+QQuickVirtualKeyboardSettings *QQuickVirtualKeyboardSettings::create(
+        QQmlEngine *qmlEngine, QJSEngine *)
 {
-    return new QQuickVirtualKeyboardSettings(qmlEngine);
+    static QMutex mutex;
+    static QHash<QQmlEngine *, QQuickVirtualKeyboardSettings *> instances;
+    QMutexLocker locker(&mutex);
+    QQuickVirtualKeyboardSettings *&instance = instances[qmlEngine];
+    if (instance == nullptr)
+        instance = new QQuickVirtualKeyboardSettings(qmlEngine);
+    return instance;
 }
 
 /*!
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtvirtualkeyboard-everywhere-src-6.5.2/src/virtualkeyboard/configure.cmake 
new/qtvirtualkeyboard-everywhere-src-6.5.3/src/virtualkeyboard/configure.cmake
--- 
old/qtvirtualkeyboard-everywhere-src-6.5.2/src/virtualkeyboard/configure.cmake  
    2023-07-07 18:22:14.000000000 +0200
+++ 
new/qtvirtualkeyboard-everywhere-src-6.5.3/src/virtualkeyboard/configure.cmake  
    2023-09-24 13:38:43.000000000 +0200
@@ -36,7 +36,7 @@
 )
 qt_feature("vkb-desktop" PUBLIC
     LABEL "Desktop integration"
-    CONDITION NOT cross_compile
+    CONDITION NOT ANDROID
 )
 qt_feature("vkb-layouts" PUBLIC
     LABEL "Built-in layouts"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtvirtualkeyboard-everywhere-src-6.5.2/src/virtualkeyboard/doc/src/qtvirtualkeyboard-examples.qdoc
 
new/qtvirtualkeyboard-everywhere-src-6.5.3/src/virtualkeyboard/doc/src/qtvirtualkeyboard-examples.qdoc
--- 
old/qtvirtualkeyboard-everywhere-src-6.5.2/src/virtualkeyboard/doc/src/qtvirtualkeyboard-examples.qdoc
      2023-07-07 18:22:14.000000000 +0200
+++ 
new/qtvirtualkeyboard-everywhere-src-6.5.3/src/virtualkeyboard/doc/src/qtvirtualkeyboard-examples.qdoc
      2023-09-24 13:38:43.000000000 +0200
@@ -10,6 +10,7 @@
 /*!
     \title Virtual Keyboard in Qt Quick
     \example basic
+    \examplecategory {Embedded}
     \brief This example shows how to use the virtual keyboard in a Qt Quick 
application.
     \ingroup qtvirtualkeyboard-examples
     \image basic-example.png
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtvirtualkeyboard-everywhere-src-6.5.2/src/virtualkeyboard/doc/src/technical-guide.qdoc
 
new/qtvirtualkeyboard-everywhere-src-6.5.3/src/virtualkeyboard/doc/src/technical-guide.qdoc
--- 
old/qtvirtualkeyboard-everywhere-src-6.5.2/src/virtualkeyboard/doc/src/technical-guide.qdoc
 2023-07-07 18:22:14.000000000 +0200
+++ 
new/qtvirtualkeyboard-everywhere-src-6.5.3/src/virtualkeyboard/doc/src/technical-guide.qdoc
 2023-09-24 13:38:43.000000000 +0200
@@ -6,7 +6,7 @@
 \page qtvirtualkeyboard-overview.html
 \title Qt Virtual Keyboard Overview
 \brief Describes the technical details of the Qt Virtual Keyboard module.
-
+\ingroup explanantion
 This document provides a technical overview of the Qt Virtual Keyboard plugin.
 
 \section1 Features
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtvirtualkeyboard-everywhere-src-6.5.2/src/virtualkeyboard/qvirtualkeyboardinputcontext.h
 
new/qtvirtualkeyboard-everywhere-src-6.5.3/src/virtualkeyboard/qvirtualkeyboardinputcontext.h
--- 
old/qtvirtualkeyboard-everywhere-src-6.5.2/src/virtualkeyboard/qvirtualkeyboardinputcontext.h
       2023-07-07 18:22:14.000000000 +0200
+++ 
new/qtvirtualkeyboard-everywhere-src-6.5.3/src/virtualkeyboard/qvirtualkeyboardinputcontext.h
       2023-09-24 13:38:43.000000000 +0200
@@ -50,7 +50,9 @@
     Q_PROPERTY(QVirtualKeyboardObserver *keyboardObserver READ 
keyboardObserver CONSTANT REVISION(6, 1))
     Q_MOC_INCLUDE("qvirtualkeyboardinputengine.h")
     Q_MOC_INCLUDE("qvirtualkeyboardinputcontext_p.h")
-    QML_NAMED_ELEMENT(InputContext)
+
+    // The QML macros are unused for now, until we can move the 
QML_NAMED_ELEMENT back here.
+    // QML_SINGLETON generates some code that might or might not emit symbols 
on some platforms.
     QML_SINGLETON
     QML_ADDED_IN_VERSION(1, 0)
     QML_EXTRA_VERSION(2, 0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtvirtualkeyboard-everywhere-src-6.5.2/src/virtualkeyboard/qvirtualkeyboardinputcontext_p.cpp
 
new/qtvirtualkeyboard-everywhere-src-6.5.3/src/virtualkeyboard/qvirtualkeyboardinputcontext_p.cpp
--- 
old/qtvirtualkeyboard-everywhere-src-6.5.2/src/virtualkeyboard/qvirtualkeyboardinputcontext_p.cpp
   2023-07-07 18:22:14.000000000 +0200
+++ 
new/qtvirtualkeyboard-everywhere-src-6.5.3/src/virtualkeyboard/qvirtualkeyboardinputcontext_p.cpp
   2023-09-24 13:38:43.000000000 +0200
@@ -18,6 +18,7 @@
 #include <QtQuick/qquickwindow.h>
 #include <QtGui/qpa/qplatformintegration.h>
 #include <QtGui/private/qguiapplication_p.h>
+#include <QQmlEngine>
 
 QT_BEGIN_NAMESPACE
 
@@ -629,4 +630,16 @@
     }
 }
 
+QVirtualKeyboardInputContext *QVirtualKeyboardInputContextForeign::create(
+        QQmlEngine *qmlEngine, QJSEngine *)
+{
+    static QMutex mutex;
+    static QHash<QQmlEngine *, QVirtualKeyboardInputContext *> instances;
+    QMutexLocker locker(&mutex);
+    QVirtualKeyboardInputContext *&instance = instances[qmlEngine];
+    if (instance == nullptr)
+        instance = new QVirtualKeyboardInputContext(qmlEngine);
+    return instance;
+}
+
 QT_END_NAMESPACE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtvirtualkeyboard-everywhere-src-6.5.2/src/virtualkeyboard/qvirtualkeyboardinputcontext_p.h
 
new/qtvirtualkeyboard-everywhere-src-6.5.3/src/virtualkeyboard/qvirtualkeyboardinputcontext_p.h
--- 
old/qtvirtualkeyboard-everywhere-src-6.5.2/src/virtualkeyboard/qvirtualkeyboardinputcontext_p.h
     2023-07-07 18:22:14.000000000 +0200
+++ 
new/qtvirtualkeyboard-everywhere-src-6.5.3/src/virtualkeyboard/qvirtualkeyboardinputcontext_p.h
     2023-09-24 13:38:43.000000000 +0200
@@ -191,6 +191,23 @@
 
 Q_DECLARE_OPERATORS_FOR_FLAGS(QVirtualKeyboardInputContextPrivate::StateFlags)
 
+/*!
+    TODO: Remove this type and move the registration back into 
QVirtualKeyboardInputContext when
+          QML stops creating separate singleton instances for each version.
+ */
+struct QVirtualKeyboardInputContextForeign
+{
+    Q_GADGET
+    QML_FOREIGN(QVirtualKeyboardInputContext)
+    QML_NAMED_ELEMENT(InputContext)
+    QML_SINGLETON
+    QML_ADDED_IN_VERSION(1, 0)
+    QML_EXTRA_VERSION(2, 0)
+
+public:
+    static QVirtualKeyboardInputContext *create(QQmlEngine *qmlEngine, 
QJSEngine *);
+};
+
 QT_END_NAMESPACE
 
 Q_DECLARE_METATYPE(QVirtualKeyboardInputContextPrivate::State)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtvirtualkeyboard-everywhere-src-6.5.2/tests/auto/inputpanel/data/inputpanel/inputpanel.qml
 
new/qtvirtualkeyboard-everywhere-src-6.5.3/tests/auto/inputpanel/data/inputpanel/inputpanel.qml
--- 
old/qtvirtualkeyboard-everywhere-src-6.5.2/tests/auto/inputpanel/data/inputpanel/inputpanel.qml
     2023-07-07 18:22:14.000000000 +0200
+++ 
new/qtvirtualkeyboard-everywhere-src-6.5.3/tests/auto/inputpanel/data/inputpanel/inputpanel.qml
     2023-09-24 13:38:43.000000000 +0200
@@ -29,25 +29,20 @@
     readonly property var activeLocales: VirtualKeyboardSettings.activeLocales
     readonly property int inputMode: InputContext.inputEngine.inputMode
     readonly property var inputMethod: InputContext.inputEngine.inputMethod
-    readonly property var keyboard: Utils.findChildByProperty(inputPanel, 
"objectName", "keyboard", null)
     readonly property bool handwritingMode: keyboard.handwritingMode
-    readonly property var keyboardLayoutLoader: 
Utils.findChildByProperty(keyboard, "objectName", "keyboardLayoutLoader", null)
-    readonly property var keyboardInputArea: 
Utils.findChildByProperty(keyboard, "objectName", "keyboardInputArea", null)
-    readonly property var characterPreviewBubble: 
Utils.findChildByProperty(keyboard, "objectName", "characterPreviewBubble", 
null)
-    readonly property var alternativeKeys: Utils.findChildByProperty(keyboard, 
"objectName", "alternativeKeys", null)
-    readonly property var naviationHighlight: 
Utils.findChildByProperty(keyboard, "objectName", "naviationHighlight", null)
-    readonly property bool naviationHighlightAnimating: 
naviationHighlight.xAnimation.running ||
-                                                        
naviationHighlight.yAnimation.running ||
-                                                        
naviationHighlight.widthAnimation.running ||
-                                                        
naviationHighlight.heightAnimation.running
-    readonly property var wordCandidateView: 
Utils.findChildByProperty(keyboard, "objectName", "wordCandidateView", null)
-    readonly property var wordCandidateContextMenu: 
Utils.findChildByProperty(keyboard, "objectName", "wordCandidateContextMenu", 
null)
-    readonly property var shadowInputControl: 
Utils.findChildByProperty(keyboard, "objectName", "shadowInputControl", null)
-    readonly property var shadowInput: Utils.findChildByProperty(keyboard, 
"objectName", "shadowInput", null)
-    readonly property var selectionControl: 
Utils.findChildByProperty(inputPanel, "objectName", "selectionControl", null)
+    readonly property Loader keyboardLayoutLoader: 
keyboard.keyboardLayoutLoader
+    readonly property MultiPointTouchArea keyboardInputArea: 
keyboard.keyboardInputArea
+    readonly property CharacterPreviewBubble characterPreviewBubble: 
keyboard.characterPreview
+    readonly property AlternativeKeys alternativeKeys: keyboard.alternativeKeys
+    readonly property Loader naviationHighlight: keyboard.naviationHighlight
+    readonly property ListView wordCandidateView: keyboard.wordCandidateView
+    readonly property Item wordCandidateContextMenu: 
keyboard.wordCandidateContextMenu
+    readonly property ShadowInputControl shadowInputControl: 
keyboard.shadowInputControl
+    readonly property TextInput shadowInput: 
keyboard.shadowInputControl.textEdit
+    readonly property SelectionControl selectionControl: 
Utils.findChildByProperty(inputPanel, "objectName", "selectionControl", null)
     readonly property var anchorHandle: selectionControl.children[0]
     readonly property var cursorHandle: selectionControl.children[1]
-    readonly property var fullScreenModeSelectionControl: 
Utils.findChildByProperty(inputPanel, "objectName", 
"fullScreenModeSelectionControl", null)
+    readonly property SelectionControl fullScreenModeSelectionControl: 
keyboard.fullScreenModeSelectionControl
     readonly property var fullScreenModeAnchorHandle: 
fullScreenModeSelectionControl.children[0]
     readonly property var fullScreenModeCursorHandle: 
fullScreenModeSelectionControl.children[1]
     readonly property bool wordCandidateListVisibleHint: 
InputContext.inputEngine.wordCandidateListVisibleHint
@@ -66,6 +61,7 @@
     property alias wordCandidateListItemSelectedSpy: 
wordCandidateListItemSelectedSpy
     property alias inputMethodSelectionListChangedSpy: 
inputMethodSelectionListChangedSpy
     property alias wordCandidateListVisibleSpy: wordCandidateListVisibleSpy
+    property alias wordCandidateListCurrentIndexSpy: 
wordCandidateListCurrentIndexSpy
     property alias shiftStateSpy: shiftStateSpy
     property alias shadowInputControlVisibleSpy: shadowInputControlVisibleSpy
     property alias externalLanguageSwitchSpy: externalLanguageSwitchSpy
@@ -172,6 +168,12 @@
     }
 
     SignalSpy {
+        id: wordCandidateListCurrentIndexSpy
+        target: wordCandidateView
+        signalName: "onCurrentIndexChanged"
+    }
+
+    SignalSpy {
         id: wordCandidateContextMenuActiveSpy
         target: wordCandidateContextMenu
         signalName: "onActiveChanged"
@@ -195,26 +197,18 @@
         signalName: "onExternalLanguageSwitch"
     }
 
-    function findChildByProperty(parent, propertyName, propertyValue, 
compareCb) {
-        var obj = null
-        if (parent === null)
-            return null
-        var children = parent.children
-        for (var i = 0; i < children.length; i++) {
-            obj = children[i]
-            if (obj.hasOwnProperty(propertyName)) {
-                if (compareCb !== null) {
-                    if (compareCb(obj[propertyName], propertyValue))
-                        break
-                } else if (obj[propertyName] === propertyValue) {
-                    break
-                }
-            }
-            obj = findChildByProperty(obj, propertyName, propertyValue, 
compareCb)
-            if (obj)
-                break
-        }
-        return obj
+    // Disable all animations during tests
+    Binding {
+        target: keyboard
+        property: "noAnimations"
+        value: true
+    }
+
+    // Reduce press and hold delay to avoid unnecessary wait during tests
+    Binding {
+        target: keyboard
+        property: "pressAndHoldDelay"
+        value: 50
     }
 
     function isLocaleSupported(inputLocale) {
@@ -442,14 +436,14 @@
         if (keyObj) {
             virtualKeyPressPoint = inputPanel.mapFromItem(keyObj, keyObj.width 
/ 2, keyObj.height / 2)
             testcase.mousePress(inputPanel, virtualKeyPressPoint.x, 
virtualKeyPressPoint.y)
-            testcase.wait(20)
+            testcase.wait(1)
             if (alternativeKey) {
                 alternativeKeysSpy.wait()
                 var keyIndex = 
keyObj.effectiveAlternativeKeys.indexOf(key.toLowerCase())
                 var itemX = keyIndex * 
keyboard.style.alternateKeysListItemWidth + 
keyboard.style.alternateKeysListItemWidth / 2
                 virtualKeyPressPoint.x = 
inputPanel.mapFromItem(alternativeKeys.listView, itemX, 0).x
                 testcase.mouseMove(inputPanel, virtualKeyPressPoint.x, 
virtualKeyPressPoint.y)
-                testcase.waitForRendering(inputPanel)
+                testcase.wait(1)
             }
             return true
         }
@@ -536,7 +530,6 @@
     function virtualKeyClick(key) {
         if (virtualKeyPress(key)) {
             virtualKeyRelease()
-            testcase.waitForRendering(inputPanel)
             return true
         }
         return false
@@ -544,13 +537,7 @@
 
     function emulateNavigationKeyClick(navigationKey) {
         testcase.keyClick(navigationKey)
-        while (inputPanel.naviationHighlightAnimating)
-            testcase.wait(inputPanel.naviationHighlight.moveDuration / 2)
-    }
-
-    function navigationHighlightContains(point) {
-        var navigationPoint = 
inputPanel.mapToItem(inputPanel.naviationHighlight, point.x, point.y)
-        return 
inputPanel.naviationHighlight.contains(Qt.point(navigationPoint.x, 
navigationPoint.y))
+        testcase.wait(50)
     }
 
     function navigateToKeyOnPoint(point) {
@@ -558,7 +545,7 @@
         if (inputPanel.naviationHighlight.visible) {
             while (true) {
                 var navigationPoint = 
inputPanel.mapToItem(inputPanel.naviationHighlight, point.x, point.y)
-                if (navigationHighlightContains(point))
+                if 
(inputPanel.naviationHighlight.contains(Qt.point(navigationPoint.x, 
navigationPoint.y)))
                     return true
                 if (inputPanel.naviationHighlight.y > point.y)
                     emulateNavigationKeyClick(Qt.Key_Up)
@@ -618,12 +605,9 @@
 
     function activateNavigationKeyMode() {
         if (!inputPanel.naviationHighlight.visible) {
-            inputPanel.naviationHighlight.moveDuration = 0
-            inputPanel.naviationHighlight.resizeDuration = 0
             emulateNavigationKeyClick(Qt.Key_Right)
             if (inputPanel.naviationHighlight.visible) {
-                while (inputPanel.naviationHighlightAnimating)
-                    testcase.wait(inputPanel.naviationHighlight.moveDuration / 
2)
+                testcase.wait(1)
             }
         }
         return inputPanel.naviationHighlight.visible
@@ -680,7 +664,6 @@
                     inputPanel.wordCandidateView.decrementCurrentIndex()
                 }
             }
-            testcase.waitForRendering(inputPanel)
         }
         return suggestionFound
     }
@@ -688,7 +671,6 @@
     function selectionListSelectCurrentItem() {
         if (!inputPanel.wordCandidateView.currentItem)
             return false
-        testcase.wait(200)
         testcase.verify(inputPanel.wordCandidateView.currentItem,
             "Expected wordCandidateView to have a currentItem, but it's null."
             + " Its property values at the time of failure are:"
@@ -704,7 +686,6 @@
                                              
inputPanel.wordCandidateView.currentItem.width / 2,
                                              
inputPanel.wordCandidateView.currentItem.height / 2)
         testcase.mouseClick(inputPanel, itemPos.x, itemPos.y, Qt.LeftButton, 
0, 20)
-        testcase.waitForRendering(inputPanel)
         return true
     }
 
@@ -738,7 +719,6 @@
         var wordCandidateContextMenuList = Utils.findChildByProperty(keyboard, 
"objectName", "wordCandidateContextMenuList", null)
         if (wordCandidateContextMenuList.currentIndex !== index) {
             wordCandidateContextMenuList.currentIndex = index
-            testcase.waitForRendering(inputPanel)
         }
         if (!wordCandidateContextMenuList.currentItem)
             return false
@@ -746,10 +726,13 @@
                                              
wordCandidateContextMenuList.currentItem.width / 2,
                                              
wordCandidateContextMenuList.currentItem.height / 2)
         testcase.mouseClick(inputPanel, itemPos.x, itemPos.y, Qt.LeftButton, 
0, 20)
-        testcase.waitForRendering(inputPanel)
         return true
     }
 
+    function isHandwritingFeatureAvailable() {
+        return VirtualKeyboardFeatures.Handwriting
+    }
+
     function setHandwritingMode(enabled) {
         if (inputPanel.keyboard.handwritingMode !== enabled) {
             if (!enabled || inputPanel.keyboard.isHandwritingAvailable())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtvirtualkeyboard-everywhere-src-6.5.2/tests/auto/inputpanel/data/inputpanel/utils.js
 
new/qtvirtualkeyboard-everywhere-src-6.5.3/tests/auto/inputpanel/data/inputpanel/utils.js
--- 
old/qtvirtualkeyboard-everywhere-src-6.5.2/tests/auto/inputpanel/data/inputpanel/utils.js
   2023-07-07 18:22:14.000000000 +0200
+++ 
new/qtvirtualkeyboard-everywhere-src-6.5.3/tests/auto/inputpanel/data/inputpanel/utils.js
   2023-09-24 13:38:43.000000000 +0200
@@ -8,8 +8,7 @@
     if (parent === null)
         return null
     var children = parent.children
-    for (var i = 0; i < children.length; i++) {
-        obj = children[i]
+    for (obj of children) {
         if (obj.hasOwnProperty(propertyName)) {
             if (compareCb !== null) {
                 if (compareCb(obj[propertyName], propertyValue))
@@ -30,8 +29,7 @@
     if (parent === null)
         return null
     var children = parent.children
-    for (var i = 0; i < children.length; i++) {
-        obj = children[i]
+    for (obj of children) {
         if (matchCb(obj, param))
             break
         obj = findChild(obj, param, matchCb)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtvirtualkeyboard-everywhere-src-6.5.2/tests/auto/inputpanel/data/tst_inputpanel.qml
 
new/qtvirtualkeyboard-everywhere-src-6.5.3/tests/auto/inputpanel/data/tst_inputpanel.qml
--- 
old/qtvirtualkeyboard-everywhere-src-6.5.2/tests/auto/inputpanel/data/tst_inputpanel.qml
    2023-07-07 18:22:14.000000000 +0200
+++ 
new/qtvirtualkeyboard-everywhere-src-6.5.3/tests/auto/inputpanel/data/tst_inputpanel.qml
    2023-09-24 13:38:43.000000000 +0200
@@ -54,6 +54,12 @@
         }
 
         function prepareTest(data, skipIfFail) {
+            // Skip hwr tests early if handwriting feature is not available
+            if (data !== undefined && data.hasOwnProperty("initHwrMode") && 
data.initHwrMode) {
+                if (!inputPanel.isHandwritingFeatureAvailable())
+                    skip("Handwriting feature not available")
+            }
+
             inputPanel.setWclAutoHideDelay(data !== undefined && 
data.hasOwnProperty("wclAutoHideDelay") ? data.wclAutoHideDelay : 5000)
             inputPanel.setWclAlwaysVisible(data !== undefined && 
data.hasOwnProperty("wclAlwaysVisible") && data.wclAlwaysVisible)
             inputPanel.setWclAutoCommitWord(data !== undefined && 
data.hasOwnProperty("wclAutoCommitWord") && data.wclAutoCommitWord)
@@ -68,7 +74,6 @@
             tryCompare(window, "active", true)
 
             container.forceActiveFocus()
-            waitForRendering(container)
             if (data !== undefined && data.hasOwnProperty("initText")) {
                 textInput.text = data.initText
                 textInput.cursorPosition = 
data.hasOwnProperty("initCursorPosition") ? data.initCursorPosition : 
textInput.text.length
@@ -83,7 +88,6 @@
             handwritingInputPanel.available = false
             inputPanel.setHandwritingMode(false)
             textInput.forceActiveFocus()
-            waitForRendering(inputPanel)
             var activeLocales = data !== undefined && 
data.hasOwnProperty("activeLocales") ? data.activeLocales : []
             inputPanel.setActiveLocales(activeLocales)
             var locale = data !== undefined && 
data.hasOwnProperty("initLocale") ? data.initLocale : "en_GB"
@@ -394,7 +398,6 @@
             }
 
             Qt.inputMethod.commit()
-            waitForRendering(inputPanel)
             compare(textInput.text, data.outputText)
         }
 
@@ -423,7 +426,6 @@
             }
 
             Qt.inputMethod.commit()
-            waitForRendering(inputPanel)
             compare(textInput.text, data.outputText)
         }
 
@@ -455,7 +457,6 @@
             }
 
             Qt.inputMethod.commit()
-            waitForRendering(inputPanel)
             compare(textInput.text, data.outputText)
         }
 
@@ -501,7 +502,6 @@
             }
 
             Qt.inputMethod.commit()
-            waitForRendering(inputPanel)
             compare(textInput.text, data.outputText)
         }
 
@@ -606,16 +606,13 @@
 
             inputPanel.setStyle("retro")
             inputPanel.styleSpy.wait()
-            waitForRendering(inputPanel)
 
             inputPanel.setStyle("default")
             inputPanel.styleSpy.wait()
-            waitForRendering(inputPanel)
 
             compare(inputPanel.styleSpy.count, 2)
 
             inputPanel.setStyle(origStyle)
-            waitForRendering(inputPanel)
         }
 
         function test_soundEffects() {
@@ -635,9 +632,9 @@
 
         function test_navigationKeyInputSequence_data() {
             return [
-                { initInputMethodHints: Qt.ImhNoPredictiveText | 
Qt.ImhNoAutoUppercase, inputSequence: "\u00E1\u017C", outputText: 
"\u00E1\u017C" },
-                { initInputMethodHints: Qt.ImhNoPredictiveText | 
Qt.ImhNoAutoUppercase, inputSequence: "~123qwe", outputText: "~123qwe" },
-                { initInputMethodHints: Qt.ImhNoPredictiveText | 
Qt.ImhNoAutoUppercase, inputSequence: [ Qt.Key_Shift, Qt.Key_V, Qt.Key_K, 
Qt.Key_B, Qt.Key_Return ], outputText: "VKB\n" },
+                { initialKey: Qt.Key_Space, initInputMethodHints: 
Qt.ImhNoPredictiveText | Qt.ImhNoAutoUppercase, inputSequence: "\u00E1\u017C", 
outputText: "\u00E1\u017C" },
+                { initialKey: Qt.Key_Space, initInputMethodHints: 
Qt.ImhNoPredictiveText | Qt.ImhNoAutoUppercase, inputSequence: "~123qwe", 
outputText: "~123qwe" },
+                { initialKey: Qt.Key_Space, initInputMethodHints: 
Qt.ImhNoPredictiveText | Qt.ImhNoAutoUppercase, inputSequence: [ Qt.Key_Shift, 
Qt.Key_Shift, Qt.Key_V, Qt.Key_K, Qt.Key_B, Qt.Key_Return ], outputText: 
"VKB\n" },
             ]
         }
 
@@ -648,20 +645,20 @@
                 skip("Arrow key navigation not enabled")
 
             verify(inputPanel.naviationHighlight.visible)
+            verify(inputPanel.navigateToKey(data.initialKey))
 
             for (var inputIndex in data.inputSequence) {
                 
verify(inputPanel.navigationKeyClick(data.inputSequence[inputIndex]))
             }
 
             Qt.inputMethod.commit()
-            waitForRendering(inputPanel)
             compare(textInput.text, data.outputText)
         }
 
         function test_navigationCursorWrap_data() {
             return [
-                { initialKey: Qt.Key_Q, navigationKey: Qt.Key_Up, 
navigationKeyRepeat: 4 },
-                { initialKey: Qt.Key_Q, navigationKey: Qt.Key_Down, 
navigationKeyRepeat: 4 },
+                { initialKey: Qt.Key_W, navigationKey: Qt.Key_Up, 
navigationKeyRepeat: 4 },
+                { initialKey: Qt.Key_W, navigationKey: Qt.Key_Down, 
navigationKeyRepeat: 4 },
                 { initialKey: Qt.Key_T, navigationKey: Qt.Key_Up, 
navigationKeyRepeat: 4 },
                 { initialKey: Qt.Key_T, navigationKey: Qt.Key_Down, 
navigationKeyRepeat: 4 },
                 { initialKey: Qt.Key_Backspace, navigationKey: Qt.Key_Up, 
navigationKeyRepeat: 4 },
@@ -694,7 +691,7 @@
                 }
             }
 
-            verify(inputPanel.keyboardInputArea.initialKey === initialKeyObj)
+            compare(inputPanel.keyboardInputArea.initialKey, initialKeyObj)
         }
 
         function test_navigationCursorAndWordCandidateView() {
@@ -734,7 +731,10 @@
 
             // Move focus to the next item in the list
             var previousHighlightIndex = 
inputPanel.wordCandidateView.currentIndex
+            inputPanel.wordCandidateListCurrentIndexSpy.clear()
             inputPanel.emulateNavigationKeyClick(Qt.Key_Right)
+            inputPanel.wordCandidateListCurrentIndexSpy.wait()
+            compare(inputPanel.wordCandidateListCurrentIndexSpy.count, 1)
             compare(inputPanel.wordCandidateView.currentIndex, 
previousHighlightIndex + 1)
 
             // Move focus to previously focused key on keyboard and back
@@ -750,7 +750,10 @@
             for (previousHighlightIndex = 
inputPanel.wordCandidateView.currentIndex;
                  previousHighlightIndex < inputPanel.wordCandidateView.count - 
1;
                  previousHighlightIndex++) {
+                inputPanel.wordCandidateListCurrentIndexSpy.clear()
                 inputPanel.emulateNavigationKeyClick(Qt.Key_Right)
+                inputPanel.wordCandidateListCurrentIndexSpy.wait()
+                compare(inputPanel.wordCandidateListCurrentIndexSpy.count, 1)
                 compare(inputPanel.wordCandidateView.currentIndex, 
previousHighlightIndex + 1)
             }
 
@@ -810,7 +813,7 @@
 
             var keysTraversed = []
             do {
-                
verify(keysTraversed.indexOf(inputPanel.keyboardInputArea.initialKey) === -1)
+                
compare(keysTraversed.indexOf(inputPanel.keyboardInputArea.initialKey), -1)
                 var currentKey = inputPanel.keyboardInputArea.initialKey
                 keysTraversed.push(currentKey)
                 inputPanel.emulateNavigationKeyClick(Qt.Key_Right)
@@ -845,7 +848,6 @@
             for (var inputIndex in data.inputSequence) {
                 
verify(inputPanel.virtualKeyClick(data.inputSequence[inputIndex]))
             }
-            waitForRendering(inputPanel)
 
             if (inputPanel.wordCandidateListVisibleHint) {
                 if (data.hasOwnProperty("expectedSuggestion")) {
@@ -891,7 +893,6 @@
             }
 
             Qt.inputMethod.commit()
-            waitForRendering(inputPanel)
             if (!inputPanel.wordCandidateListVisibleHint && textInput.text !== 
data.outputText)
                 expectFail("", "Prediction/spell correction not enabled")
             compare(textInput.text, data.outputText)
@@ -935,7 +936,6 @@
             for (var inputIndex in data.inputSequence) {
                 
verify(inputPanel.virtualKeyClick(data.inputSequence[inputIndex]))
             }
-            waitForRendering(inputPanel)
 
             for (var candidateIndex in data.expectedCandidates) {
                 
verify(inputPanel.selectionListSearchSuggestion(data.expectedCandidates[candidateIndex]))
@@ -997,7 +997,6 @@
                 else
                     verify(inputPanel.virtualKeyClick(key))
             }
-            waitForRendering(inputPanel)
 
             if (data.expectedCandidates) {
                 for (var candidateIndex in data.expectedCandidates) {
@@ -1077,8 +1076,6 @@
                         
verify(inputPanel.virtualKeyClick(inputSequence[charIndex]))
                     }
 
-                    waitForRendering(inputPanel)
-
                     if (data.expectedCandidates && inputIndex < 
data.expectedCandidates.length && data.expectedCandidates[inputIndex].length > 
0) {
                         
verify(inputPanel.selectionListSearchSuggestion(data.expectedCandidates[inputIndex]))
                         verify(inputPanel.selectionListSelectCurrentItem())
@@ -1087,7 +1084,6 @@
                     
verify(inputPanel.virtualKeyClick(data.inputSequence[inputIndex]))
                 }
             }
-            waitForRendering(inputPanel)
 
             if (!Array.isArray(data.inputSequence) && data.expectedCandidates) 
{
                 
verify(inputPanel.selectionListSearchSuggestion(data.expectedCandidates))
@@ -1160,12 +1156,10 @@
             // Remove Jamos one by one.
             // The number of removed characters must match to the number of 
Jamos entered.
             for (inputIndex = data.inputSequence.length - 1; inputIndex >= 0; 
inputIndex--) {
-                waitForRendering(inputPanel)
                 compare(Utils.toUnicodeHex(textInputContents()), 
Utils.toUnicodeHex(intermediateResult.pop()))
                 inputPanel.virtualKeyClick(Qt.Key_Backspace)
             }
 
-            waitForRendering(inputPanel)
             compare(Utils.toUnicodeHex(textInputContents()),
                     Utils.toUnicodeHex(data.initText !== undefined ? 
data.initText : ""))
         }
@@ -1210,7 +1204,6 @@
                 
verify(inputPanel.virtualKeyClick(data.inputSequence[inputIndex]))
             }
 
-            waitForRendering(inputPanel)
             compare(textInput.text, data.outputText)
 
             if (data.hasOwnProperty("expectedCursorPosition"))
@@ -1240,7 +1233,6 @@
             for (var inputIndex in data.inputSequence) {
                 
verify(inputPanel.virtualKeyClick(data.inputSequence[inputIndex]))
             }
-            waitForRendering(inputPanel)
 
             for (var candidateIndex in data.expectedCandidates) {
                 
verify(inputPanel.selectionListSearchSuggestion(data.expectedCandidates[candidateIndex]))
@@ -1295,7 +1287,6 @@
             }
 
             Qt.inputMethod.commit()
-            waitForRendering(inputPanel)
             compare(textInput.text, data.outputText)
         }
 
@@ -1339,7 +1330,6 @@
             }
 
             Qt.inputMethod.commit()
-            waitForRendering(inputPanel)
             compare(textInput.text, data.outputText)
         }
 
@@ -1385,7 +1375,6 @@
             }
 
             Qt.inputMethod.commit()
-            waitForRendering(inputPanel)
             compare(textInput.text, data.outputText)
         }
 
@@ -1419,12 +1408,10 @@
             }
 
             Qt.inputMethod.commit()
-            waitForRendering(inputPanel)
             compare(textInput.text, data.outputText)
 
             var inputMode = inputPanel.inputMode
             verify(inputPanel.virtualKeyClick(Qt.Key_Mode_switch))
-            waitForRendering(inputPanel)
             compare(inputPanel.inputMode !== inputMode, data.modeSwitchAllowed)
         }
 
@@ -1448,7 +1435,6 @@
             for (var inputIndex in data.inputSequence) {
                 
verify(inputPanel.emulateHandwriting(data.inputSequence.charAt(inputIndex), 
true))
             }
-            waitForRendering(inputPanel)
 
             if (inputPanel.wordCandidateListVisibleHint) {
                 if (data.hasOwnProperty("expectedSuggestion")) {
@@ -1627,7 +1613,6 @@
             for (var inputIndex in data.inputSequence) {
                 
verify(handwritingInputPanel.emulateHandwriting(data.inputSequence.charAt(inputIndex),
 true))
             }
-            waitForRendering(handwritingInputPanel)
 
             if (data.popupFlipped) {
                 verify(handwritingInputPanel.wordCandidatePopupList.y + 
handwritingInputPanel.wordCandidatePopupList.height <= 
Qt.inputMethod.cursorRectangle.y)
@@ -1660,7 +1645,6 @@
                 else
                     expectedResult = (inputPanel.activeLocales.length === 0 || 
inputPanel.activeLocales.indexOf(locale) !== -1) && 
inputPanel.availableLocales.indexOf(locale) !== -1
                 inputPanel.setLocale(locale)
-                waitForRendering(inputPanel)
                 compare(inputPanel.locale === locale, expectedResult, "Test 
locale %1".arg(locale))
             }
         }
@@ -1711,7 +1695,6 @@
                 var cursorRect = cursorRects[i]
                 mousePress(textInput, cursorRect.x, cursorRect.y + 
cursorRect.height / 2, Qt.LeftButton, Qt.NoModifier, 20)
                 mouseRelease(textInput, cursorRect.x, cursorRect.y + 
cursorRect.height / 2, Qt.LeftButton, Qt.NoModifier, 20)
-                waitForRendering(textInput)
             }
 
             if (!inputPanel.wordCandidateListVisibleHint && 
inputPanel.preeditText !== data.expectedPreeditText)
@@ -1773,7 +1756,6 @@
                 var cursorRect = cursorRects[i]
                 mousePress(textInput, cursorRect.x, cursorRect.y + 
cursorRect.height / 2, Qt.LeftButton, Qt.NoModifier, 20)
                 mouseRelease(textInput, cursorRect.x, cursorRect.y + 
cursorRect.height / 2, Qt.LeftButton, Qt.NoModifier, 20)
-                waitForRendering(textInput)
             }
 
             if (!inputPanel.wordCandidateListVisibleHint && 
inputPanel.preeditText !== data.expectedPreeditText)
@@ -1799,7 +1781,6 @@
         }
 
         function test_selection(data) {
-            waitForRendering(textInput)
             prepareTest(data)
             compare(inputPanel.cursorHandle.visible, 
data.expectHandlesToBeVisible)
             compare(inputPanel.anchorHandle.visible, 
data.expectHandlesToBeVisible)
@@ -1942,13 +1923,11 @@
             prepareTest(data)
             inputPanel.wordCandidateListChangedSpy.clear()
             Qt.inputMethod.show()
-            waitForRendering(inputPanel)
             compare(inputPanel.wordCandidateView.visibleCondition, 
data.wclAlwaysVisible)
             inputPanel.virtualKeyClick("a")
             inputPanel.virtualKeyClick("u")
             inputPanel.virtualKeyClick("t")
             inputPanel.virtualKeyClick("o")
-            waitForRendering(inputPanel)
             if (!inputPanel.wordCandidateListVisibleHint)
                 skip("Prediction/spell correction not enabled")
             inputPanel.wordCandidateListChangedSpy.wait(1000)
@@ -1959,7 +1938,6 @@
                 wait(data.wclAutoHideDelay + 250)
             else
                 
inputPanel.wordCandidateListVisibleSpy.wait(data.wclAutoHideDelay + 500)
-            waitForRendering(inputPanel)
             compare(inputPanel.wordCandidateView.visibleCondition, 
data.wclAlwaysVisible)
         }
 
@@ -1998,14 +1976,12 @@
 
             inputPanel.shadowInputControlVisibleSpy.clear()
             inputPanel.setFullScreenMode(true)
-            waitForRendering(inputPanel)
             inputPanel.shadowInputControlVisibleSpy.wait()
 
             compare(inputPanel.shadowInput.text, textInput.text)
 
             inputPanel.shadowInputControlVisibleSpy.clear()
             inputPanel.setFullScreenMode(false)
-            waitForRendering(inputPanel)
             inputPanel.shadowInputControlVisibleSpy.wait()
         }
 
@@ -2027,7 +2003,6 @@
             compare(inputPanel.shadowInput.preeditText, textInput.preeditText)
 
             Qt.inputMethod.commit()
-            waitForRendering(inputPanel)
             compare(textInput.text, data.outputText)
             compare(inputPanel.shadowInput.text, textInput.text)
             compare(inputPanel.shadowInput.cursorPosition, 
textInput.cursorPosition)
@@ -2046,7 +2021,6 @@
             prepareTest(data)
 
             data.select()
-            waitForRendering(textInput)
             compare(inputPanel.shadowInput.text, textInput.text)
             compare(inputPanel.shadowInput.cursorPosition, 
textInput.cursorPosition)
             compare(inputPanel.shadowInput.selectedText, 
textInput.selectedText)
@@ -2103,7 +2077,6 @@
                 var cursorRect = cursorRects[i]
                 mousePress(inputPanel.shadowInput, cursorRect.x, cursorRect.y 
+ cursorRect.height / 2, Qt.LeftButton, Qt.NoModifier, 20)
                 mouseRelease(inputPanel.shadowInput, cursorRect.x, 
cursorRect.y + cursorRect.height / 2, Qt.LeftButton, Qt.NoModifier, 20)
-                waitForRendering(inputPanel.shadowInput)
             }
 
             if (!inputPanel.wordCandidateListVisibleHint && 
inputPanel.preeditText !== data.expectedPreeditText)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtvirtualkeyboard-everywhere-src-6.5.2/tests/auto/styles/CMakeLists.txt 
new/qtvirtualkeyboard-everywhere-src-6.5.3/tests/auto/styles/CMakeLists.txt
--- old/qtvirtualkeyboard-everywhere-src-6.5.2/tests/auto/styles/CMakeLists.txt 
2023-07-07 18:22:14.000000000 +0200
+++ new/qtvirtualkeyboard-everywhere-src-6.5.3/tests/auto/styles/CMakeLists.txt 
2023-09-24 13:38:43.000000000 +0200
@@ -24,6 +24,24 @@
     TESTDATA ${test_data}
 )
 
+qt_internal_add_resource(tst_styles "test_res"
+    PREFIX
+        "/qt/qml/QtQuick/VirtualKeyboard/Styles/test_res"
+    BASE
+        "data/QtQuick/VirtualKeyboard/Styles/test"
+    FILES
+        "data/QtQuick/VirtualKeyboard/Styles/test/style.qml"
+)
+
+qt_internal_add_resource(tst_styles "test_res_compat"
+    PREFIX
+        "/QtQuick/VirtualKeyboard/content/styles/test_res_compat"
+    BASE
+        "data/QtQuick/VirtualKeyboard/Styles/test"
+    FILES
+        "data/QtQuick/VirtualKeyboard/Styles/test/style.qml"
+)
+
 #### Keys ignored in scope 1:.:.:styles.pro:<TRUE>:
 # DISTFILES = "data/tst_styles.qml" 
"data/QtQuick/VirtualKeyboard/Styles/test/style.qml"
 # OTHER_FILES = "$$PWD/data/tst_styles.qml"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtvirtualkeyboard-everywhere-src-6.5.2/tests/auto/styles/data/tst_styles.qml
 
new/qtvirtualkeyboard-everywhere-src-6.5.3/tests/auto/styles/data/tst_styles.qml
--- 
old/qtvirtualkeyboard-everywhere-src-6.5.2/tests/auto/styles/data/tst_styles.qml
    2023-07-07 18:22:14.000000000 +0200
+++ 
new/qtvirtualkeyboard-everywhere-src-6.5.3/tests/auto/styles/data/tst_styles.qml
    2023-09-24 13:38:43.000000000 +0200
@@ -16,7 +16,9 @@
             return [
                 { tag: "default", result: "default"},
                 { tag: "retro", result: "retro"}, // in-source alternate style
-                { tag: "test", result: "test"} // out-of-source alternate style
+                { tag: "test", result: "test"}, // out-of-source alternate 
style
+                { tag: "test_res", result: "test_res"}, // default resource 
path
+                { tag: "test_res_compat", result: "test_res_compat"}, // 
compatibility resource path
             ];
         }
 

Reply via email to