diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-12-10 01:00:18 +0100 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-12-10 01:00:19 +0100 |
commit | 0a88c5e92ba621ff9dda22d42636cabdf8493098 (patch) | |
tree | 41167b8a6a8c8e5d2f3384f7a4deba7a5dc91fbe | |
parent | 8d7542acad18a2f1be701242d655015263f3147a (diff) | |
parent | cf708de03aa96d18c5bc043c90b2795fcf1b0517 (diff) | |
download | qtbase-0a88c5e92ba621ff9dda22d42636cabdf8493098.tar.gz |
Merge remote-tracking branch 'origin/5.11' into 5.12
Change-Id: If49df791f73e9edf616baa094e0f301a44cb853d
-rw-r--r-- | dist/changes-5.11.3 | 94 | ||||
-rw-r--r-- | src/network/ssl/qsslsocket_openssl_symbols.cpp | 27 | ||||
-rw-r--r-- | src/plugins/platforms/windows/qwindowssystemtrayicon.cpp | 18 | ||||
-rw-r--r-- | src/widgets/kernel/qopenglwidget.cpp | 1 |
4 files changed, 126 insertions, 14 deletions
diff --git a/dist/changes-5.11.3 b/dist/changes-5.11.3 new file mode 100644 index 0000000000..5d13335309 --- /dev/null +++ b/dist/changes-5.11.3 @@ -0,0 +1,94 @@ +Qt 5.11.3 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.11.0 through 5.11.2. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +http://doc.qt.io/qt-5/index.html + +The Qt version 5.11 series is binary compatible with the 5.10.x series. +Applications compiled for 5.10 will continue to run with 5.11. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Third-Party Components * +**************************************************************************** + + - libpng was updated to version 1.6.35 + - PCRE2 was updated to version 10.32. + - Added documentation for the SLJIT part of pcre2, which is available + under the BSD-2-Clause license. + +**************************************************************************** +* Documentation * +**************************************************************************** + + - Fixed the icons for the "file save" action that were inaccurate + representations of a 3.5-inch floppy disk (the cut edge was on the wrong + side). Now all floppy representations are physically accurate. + +**************************************************************************** +* QtCore * +**************************************************************************** + + - QCommandLineParser: + * [QTBUG-70174] Fixed a bug that caused the help output to show two + options or more in the same line if the options didn't have a + description. + + - QDateTime: + * [QTBUG-70823] Fixed parsing of date/time strings when the day is the + start of daylight savings and that starts at midnight on the + timezone. + + - QPluginLoader: + * [QTBUG-70560] Fixed a bug in parsing certain plugins, which might + conclude a valid plugin wasn't valid. + + - QPointer: + * [QTBUG-71412] Fixed a race condition that would cause an assertion + failure when two threads created a QPointer for the same QObject. + + - QUrl: + * Fixed a bug that caused QUrl::matches to incorrectly compare two URLs + with different hostnames or different usernames as equal, if certain + QUrl::RemoveXxx options were passed. + * [QTBUG-70386][QTBUG-70852] Updated the public DNS suffix list. + +**************************************************************************** +* QtGui * +**************************************************************************** + + - QPicture: + * [QTBUG-71208] Fix crash reading malformed picture file + +**************************************************************************** +* QtNetwork * +**************************************************************************** + + - SSL: + * [QTBUG-68156] OpenSSL >= 1.0 is now required to build Qt with OpenSSL + support. + +**************************************************************************** +* Linux * +**************************************************************************** + + - Fixed a number of incompatibilities with Linux C libraries due to use of + new kernel system calls statx(2) and renameat2(2). In order to enable + them now in Qt, they need to be provided in the C library's own + headers. Currently, glibc 2.28 contains them. + +**************************************************************************** +* macOS * +**************************************************************************** + + - Offline renderers will be disabled when the application is + using Qt WebEngine and running on one of the late 2013 Mac Pro models. diff --git a/src/network/ssl/qsslsocket_openssl_symbols.cpp b/src/network/ssl/qsslsocket_openssl_symbols.cpp index fd58e9548e..299df6b685 100644 --- a/src/network/ssl/qsslsocket_openssl_symbols.cpp +++ b/src/network/ssl/qsslsocket_openssl_symbols.cpp @@ -824,7 +824,7 @@ static QPair<QLibrary*, QLibrary*> loadOpenSsl() // reason, we will search a few common paths (see findAllLibSsl() above) in hopes // we find one that works. // - // If that fails, for OpenSSL 1.0 we also try a fallback -- just look up + // If that fails, for OpenSSL 1.0 we also try some fallbacks -- look up // libssl.so with a hardcoded soname. The reason is QTBUG-68156: the binary // builds of Qt happen (at the time of this writing) on RHEL machines, // which change SHLIB_VERSION_NUMBER to a non-portable string. When running @@ -857,14 +857,23 @@ static QPair<QLibrary*, QLibrary*> loadOpenSsl() } #if !QT_CONFIG(opensslv11) - // first-and-half attempt: for OpenSSL 1.0 try to load an hardcoded soname. - libssl->setFileNameAndVersion(QLatin1String("ssl"), QLatin1String("1.0.0")); - libcrypto->setFileNameAndVersion(QLatin1String("crypto"), QLatin1String("1.0.0")); - if (libcrypto->load() && libssl->load()) { - return pair; - } else { - libssl->unload(); - libcrypto->unload(); + // first-and-half attempts: for OpenSSL 1.0 try to load some hardcoded sonames: + // - "1.0.0" is the official upstream one + // - "1.0.2" is found on some distributions (e.g. Debian) that patch OpenSSL + static const QLatin1String fallbackSonames[] = { + QLatin1String("1.0.0"), + QLatin1String("1.0.2") + }; + + for (auto fallbackSoname : fallbackSonames) { + libssl->setFileNameAndVersion(QLatin1String("ssl"), fallbackSoname); + libcrypto->setFileNameAndVersion(QLatin1String("crypto"), fallbackSoname); + if (libcrypto->load() && libssl->load()) { + return pair; + } else { + libssl->unload(); + libcrypto->unload(); + } } #endif #endif diff --git a/src/plugins/platforms/windows/qwindowssystemtrayicon.cpp b/src/plugins/platforms/windows/qwindowssystemtrayicon.cpp index 901d132ea5..3c27f2914d 100644 --- a/src/plugins/platforms/windows/qwindowssystemtrayicon.cpp +++ b/src/plugins/platforms/windows/qwindowssystemtrayicon.cpp @@ -382,12 +382,20 @@ bool QWindowsSystemTrayIcon::winEvent(const MSG &message, long *result) emit activated(DoubleClick); // release we must ignore it break; case WM_CONTEXTMENU: { + // QTBUG-67966: Coordinates may be out of any screen in PROCESS_DPI_UNAWARE mode + // since hi-res coordinates are delivered in this case (Windows issue). + // Default to primary screen with check to prevent a crash. const QPoint globalPos = QPoint(GET_X_LPARAM(message.wParam), GET_Y_LPARAM(message.wParam)); - const QPlatformScreen *screen = QWindowsContext::instance()->screenManager().screenAtDp(globalPos); - emit contextMenuRequested(globalPos, screen); - emit activated(Context); - if (m_menu) - m_menu->trackPopupMenu(message.hwnd, globalPos.x(), globalPos.y()); + const auto &screenManager = QWindowsContext::instance()->screenManager(); + const QPlatformScreen *screen = screenManager.screenAtDp(globalPos); + if (!screen) + screen = screenManager.screens().value(0); + if (screen) { + emit contextMenuRequested(globalPos, screen); + emit activated(Context); + if (m_menu) + m_menu->trackPopupMenu(message.hwnd, globalPos.x(), globalPos.y()); + } } break; case NIN_BALLOONUSERCLICK: diff --git a/src/widgets/kernel/qopenglwidget.cpp b/src/widgets/kernel/qopenglwidget.cpp index ed0fe0ed91..89f860150f 100644 --- a/src/widgets/kernel/qopenglwidget.cpp +++ b/src/widgets/kernel/qopenglwidget.cpp @@ -756,6 +756,7 @@ void QOpenGLWidgetPrivate::recreateFbo() fbo->bind(); context->functions()->glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); + flushPending = true; // Make sure the FBO is initialized before use paintDevice->setSize(deviceSize); paintDevice->setDevicePixelRatio(q->devicePixelRatioF()); |