From 8e8c11f4f3d5ccb8b1a9042d363e4d1639797df3 Mon Sep 17 00:00:00 2001 From: Andre de la Rocha Date: Thu, 15 Nov 2018 17:19:23 +0100 Subject: [PATCH 1/5] Windows QPA: Fix onPressedChanged only reported on touch up This issue was caused by the workaround added to fix QTBUG-70887. Certain events like the initial touch down do not generate mouse messages after the pointer messages (but only touch messages) and should not be postponed by the pointer handler. Fixes: QTBUG-71775 Change-Id: I7b64ae4d422f6a4c1bb465ce5f8255e85640dab1 Reviewed-by: Friedemann Kleint Reviewed-by: Oliver Wolff --- src/plugins/platforms/windows/qwindowspointerhandler.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/plugins/platforms/windows/qwindowspointerhandler.cpp b/src/plugins/platforms/windows/qwindowspointerhandler.cpp index 3c7372958f1..b3bc6e6d7b8 100644 --- a/src/plugins/platforms/windows/qwindowspointerhandler.cpp +++ b/src/plugins/platforms/windows/qwindowspointerhandler.cpp @@ -564,6 +564,7 @@ bool QWindowsPointerHandler::translateTouchEvent(QWindow *window, HWND hwnd, QList touchPoints; bool primaryPointer = false; + bool pressRelease = false; if (QWindowsContext::verbose > 1) qCDebug(lcQpaEvents).noquote().nospace() << showbase @@ -600,9 +601,11 @@ bool QWindowsPointerHandler::translateTouchEvent(QWindow *window, HWND hwnd, if (touchInfo[i].pointerInfo.pointerFlags & POINTER_FLAG_DOWN) { touchPoint.state = Qt::TouchPointPressed; m_lastTouchPositions.insert(touchPoint.id, touchPoint.normalPosition); + pressRelease = true; } else if (touchInfo[i].pointerInfo.pointerFlags & POINTER_FLAG_UP) { touchPoint.state = Qt::TouchPointReleased; m_lastTouchPositions.remove(touchPoint.id); + pressRelease = true; } else { touchPoint.state = stationaryTouchPoint ? Qt::TouchPointStationary : Qt::TouchPointMoved; m_lastTouchPositions.insert(touchPoint.id, touchPoint.normalPosition); @@ -615,7 +618,7 @@ bool QWindowsPointerHandler::translateTouchEvent(QWindow *window, HWND hwnd, // Avoid getting repeated messages for this frame if there are multiple pointerIds QWindowsContext::user32dll.skipPointerFrameMessages(touchInfo[i].pointerInfo.pointerId); } - if (primaryPointer) { + if (primaryPointer && !pressRelease) { // Postpone event delivery to avoid hanging inside DoDragDrop(). // Only the primary pointer will generate mouse messages. enqueueTouchEvent(window, touchPoints, QWindowsKeyMapper::queryKeyboardModifiers()); From 2aef845c03a9544d51cdf67f712ecd1a7e62110f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Sun, 25 Nov 2018 13:35:45 +0100 Subject: [PATCH 2/5] macOS: Don't link to debug versions of frameworks unless requested The failure mode of this behavior is worse than the surprises that the non-explicit library dependency chain has, so it should be opt-in. This reverts back to the behavior in Qt 5.11, but lets our tests opt in to the feature. Fixes: QTBUG-71724 Change-Id: Iede11f02d978b637324ddf71d29e7c99fe3ee99f Reviewed-by: Simon Hausmann Reviewed-by: Thiago Macieira Reviewed-by: Eike Ziller --- mkspecs/features/qt.prf | 2 +- mkspecs/features/testcase.prf | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf index 90e318e2a48..d16b3cf1be5 100644 --- a/mkspecs/features/qt.prf +++ b/mkspecs/features/qt.prf @@ -231,7 +231,7 @@ for(ever) { !isEmpty(MODULE_MODULE) { contains(MODULE_CONFIG, lib_bundle) { framework = $$MODULE_MODULE - qtConfig(debug_and_release):!macx-xcode { + qtConfig(debug_and_release):qt_link_suffixed_framework:!macx-xcode { platform_target_suffix = $$qtPlatformTargetSuffix() !isEmpty(platform_target_suffix): \ # The -framework linker argument supports a name[,suffix] version, diff --git a/mkspecs/features/testcase.prf b/mkspecs/features/testcase.prf index 79883b7f096..bfc28c68613 100644 --- a/mkspecs/features/testcase.prf +++ b/mkspecs/features/testcase.prf @@ -21,6 +21,9 @@ testcase_lowdpi { } } +# Make sure we explicitly link to the debug version of the Qt libraries if needed +macos: CONFIG += qt_link_suffixed_framework + benchmark: type = benchmark else: type = check From 05892bca9b0dc57dc3b4fbc57e2aab3dac1ad830 Mon Sep 17 00:00:00 2001 From: Timur Pocheptsov Date: Thu, 22 Nov 2018 18:32:50 +0100 Subject: [PATCH 3/5] Fix build errors in OpenSSL 1.1 backend MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SSL_CTX_set_ciphers is new in 1.1.1. Task-number: QTBUG-71983 Change-Id: If0ae9f95dcc867c62ed0d3a6a60c22c7f5e1cc9f Reviewed-by: MÃ¥rten Nordheim (cherry picked from commit 36f3eeaf3ec12126956d151a026379ab0385ab72) Reviewed-by: Timur Pocheptsov --- src/network/ssl/qsslsocket_openssl_symbols.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/network/ssl/qsslsocket_openssl_symbols.cpp b/src/network/ssl/qsslsocket_openssl_symbols.cpp index 781b3d6640a..fd58e9548e5 100644 --- a/src/network/ssl/qsslsocket_openssl_symbols.cpp +++ b/src/network/ssl/qsslsocket_openssl_symbols.cpp @@ -161,7 +161,9 @@ DEFINEFUNC(void, OPENSSL_sk_free, OPENSSL_STACK *a, a, return, DUMMYARG) DEFINEFUNC2(void *, OPENSSL_sk_value, OPENSSL_STACK *a, a, int b, b, return nullptr, return) DEFINEFUNC(int, SSL_session_reused, SSL *a, a, return 0, return) DEFINEFUNC2(unsigned long, SSL_CTX_set_options, SSL_CTX *ctx, ctx, unsigned long op, op, return 0, return) +#ifdef TLS1_3_VERSION DEFINEFUNC2(int, SSL_CTX_set_ciphersuites, SSL_CTX *ctx, ctx, const char *str, str, return 0, return) +#endif DEFINEFUNC3(size_t, SSL_get_client_random, SSL *a, a, unsigned char *out, out, size_t outlen, outlen, return 0, return) DEFINEFUNC3(size_t, SSL_SESSION_get_master_key, const SSL_SESSION *ses, ses, unsigned char *out, out, size_t outlen, outlen, return 0, return) DEFINEFUNC6(int, CRYPTO_get_ex_new_index, int class_index, class_index, long argl, argl, void *argp, argp, CRYPTO_EX_new *new_func, new_func, CRYPTO_EX_dup *dup_func, dup_func, CRYPTO_EX_free *free_func, free_func, return -1, return) From 61373dff502fd222f68ed84c90bcc1822c4498e6 Mon Sep 17 00:00:00 2001 From: Liang Qi Date: Wed, 21 Nov 2018 13:46:28 +0100 Subject: [PATCH 4/5] tst_QNetworkReply: Blacklist getFromHttp:success-external Task-number: QTBUG-71953 Change-Id: Ib69754b169dd4d5e78f566ce817608b2349c8ae0 Reviewed-by: Timur Pocheptsov (cherry picked from commit 46076f73337d6b0fea9a006dab2af8864571ae2c) Reviewed-by: Liang Qi --- tests/auto/network/access/qnetworkreply/BLACKLIST | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/auto/network/access/qnetworkreply/BLACKLIST b/tests/auto/network/access/qnetworkreply/BLACKLIST index fab82244315..4d29a830e9c 100644 --- a/tests/auto/network/access/qnetworkreply/BLACKLIST +++ b/tests/auto/network/access/qnetworkreply/BLACKLIST @@ -8,6 +8,9 @@ windows * [getErrors:ftp-host] linux +# QTBUG-71953 +[getFromHttp:success-external] +* [getFromHttpIntoBuffer] windows [getFromHttpIntoBuffer2] From 13ed06640c6cf32ea8c784c896c6bf017053edb3 Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Mon, 3 Dec 2018 12:28:12 +0200 Subject: [PATCH 5/5] [Android] Fix the ability to override environment and arguments This mechanism should only be enabled only for debug deployments, but the check was removed by accident in ca139228abdd522a76b2750aed607440568eb7f3. Fixes: QTBUG-72230 Fixes: QTBUG-72132 Change-Id: I3378436e93314fdf254919aed066f1284a4581b3 Reviewed-by: Eskil Abrahamsen Blomfeldt --- .../src/org/qtproject/qt5/android/QtActivityDelegate.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java b/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java index 8f218d34f0d..74b515ef5bb 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java +++ b/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java @@ -674,6 +674,13 @@ public class QtActivityDelegate Bundle extras = m_activity.getIntent().getExtras(); if (extras != null) { try { + // do NOT remove !!!! + final String dc = "--Added-by-androiddeployqt--/debugger.command"; + new BufferedReader(new InputStreamReader(m_activity.getAssets().open(dc))).readLine(); + // do NOT remove !!!! + // The previous lines are needed to check if the debug mode is enabled. + // We are not allowed to use extraenvvars or extraappparams in a non debuggable environment. + if (extras.containsKey("extraenvvars")) { try { m_environmentVariables += "\t" + new String(Base64.decode(extras.getString("extraenvvars"), Base64.DEFAULT), "UTF-8");