diff options
-rw-r--r-- | src/corelib/tools/qdatetime.cpp | 7 | ||||
-rw-r--r-- | src/corelib/tools/qtimezone.cpp | 2 | ||||
-rw-r--r-- | src/platformsupport/input/evdevtablet/qevdevtablethandler.cpp | 2 | ||||
-rw-r--r-- | src/plugins/platforms/windows/qwindowsdrag.cpp | 16 | ||||
-rw-r--r-- | src/plugins/platforms/xcb/qxcbnativeinterface.cpp | 14 | ||||
-rw-r--r-- | src/testlib/qtestsystem.h | 4 | ||||
-rw-r--r-- | tests/auto/network/access/qnetworkreply/BLACKLIST | 4 | ||||
-rw-r--r-- | tests/auto/network/socket/qudpsocket/BLACKLIST | 4 |
8 files changed, 33 insertions, 20 deletions
diff --git a/src/corelib/tools/qdatetime.cpp b/src/corelib/tools/qdatetime.cpp index df5e4e44e4..49e7173de0 100644 --- a/src/corelib/tools/qdatetime.cpp +++ b/src/corelib/tools/qdatetime.cpp @@ -357,7 +357,7 @@ static int fromOffsetString(const QStringRef &offsetString, bool *valid) Q_DECL_ there are in this date's month and year, respectively. The isLeapYear() function indicates whether a date is in a leap year. - \section1 + \section1 Remarks \section2 No Year 0 @@ -3047,7 +3047,7 @@ inline qint64 QDateTimePrivate::zoneMSecsToEpochMSecs(qint64 zoneMSecs, const QT \note QDateTime does not account for leap seconds. - \section1 + \section1 Remarks \section2 No Year 0 @@ -3065,8 +3065,7 @@ inline qint64 QDateTimePrivate::zoneMSecsToEpochMSecs(qint64 zoneMSecs, const QT extreme values that you do not overflow the storage. The exact range of supported values varies depending on the Qt::TimeSpec and time zone. - \section2 - Use of System Timezone + \section2 Use of System Timezone QDateTime uses the system's time zone information to determine the offset of local time from UTC. If the system is not configured diff --git a/src/corelib/tools/qtimezone.cpp b/src/corelib/tools/qtimezone.cpp index 29299bfcd6..445ddeb31d 100644 --- a/src/corelib/tools/qtimezone.cpp +++ b/src/corelib/tools/qtimezone.cpp @@ -137,7 +137,7 @@ Q_GLOBAL_STATIC(QTimeZoneSingleton, global_tz); \note For consistency with QDateTime, QTimeZone does not account for leap seconds. - \section1 + \section1 Remarks \section2 IANA Time Zone IDs diff --git a/src/platformsupport/input/evdevtablet/qevdevtablethandler.cpp b/src/platformsupport/input/evdevtablet/qevdevtablethandler.cpp index dbab2f6a24..b6051aaf3c 100644 --- a/src/platformsupport/input/evdevtablet/qevdevtablethandler.cpp +++ b/src/platformsupport/input/evdevtablet/qevdevtablethandler.cpp @@ -82,7 +82,7 @@ QEvdevTabletData::QEvdevTabletData(QEvdevTabletHandler *q_ptr) { memset(&minValues, 0, sizeof(minValues)); memset(&maxValues, 0, sizeof(maxValues)); - memset(&state, 0, sizeof(state)); + memset(static_cast<void *>(&state), 0, sizeof(state)); } void QEvdevTabletData::processInputEvent(input_event *ev) diff --git a/src/plugins/platforms/windows/qwindowsdrag.cpp b/src/plugins/platforms/windows/qwindowsdrag.cpp index 777c45ae86..db06f81434 100644 --- a/src/plugins/platforms/windows/qwindowsdrag.cpp +++ b/src/plugins/platforms/windows/qwindowsdrag.cpp @@ -248,6 +248,7 @@ private: Mode m_mode; QWindowsDrag *m_drag; + QPointer<QWindow> m_windowUnderMouse; Qt::MouseButtons m_currentButtons; ActionCursorMap m_cursors; QWindowsDragCursorWindow *m_touchDragWindow; @@ -260,6 +261,7 @@ private: QWindowsOleDropSource::QWindowsOleDropSource(QWindowsDrag *drag) : m_mode(QWindowsCursor::cursorState() != QWindowsCursor::CursorSuppressed ? MouseDrag : TouchDrag) , m_drag(drag) + , m_windowUnderMouse(QWindowsContext::instance()->windowUnderMouse()) , m_currentButtons(Qt::NoButton) , m_touchDragWindow(0) { @@ -400,7 +402,19 @@ QWindowsOleDropSource::QueryContinueDrag(BOOL fEscapePressed, DWORD grfKeyState) case DRAGDROP_S_DROP: case DRAGDROP_S_CANCEL: QGuiApplicationPrivate::modifier_buttons = toQtKeyboardModifiers(grfKeyState); - QGuiApplicationPrivate::mouse_buttons = buttons; + if (buttons != QGuiApplicationPrivate::mouse_buttons) { + if (m_windowUnderMouse.isNull() || m_mode == TouchDrag || fEscapePressed == TRUE) { + QGuiApplicationPrivate::mouse_buttons = buttons; + } else { + // QTBUG 66447: Synthesize a mouse release to the window under mouse at + // start of the DnD operation as Windows does not send any. + const QPoint globalPos = QWindowsCursor::mousePosition(); + const QPoint localPos = m_windowUnderMouse->handle()->mapFromGlobal(globalPos); + QWindowSystemInterface::handleMouseEvent(m_windowUnderMouse.data(), + QPointF(localPos), QPointF(globalPos), + QWindowsMouseHandler::queryMouseButtons()); + } + } m_currentButtons = Qt::NoButton; break; diff --git a/src/plugins/platforms/xcb/qxcbnativeinterface.cpp b/src/plugins/platforms/xcb/qxcbnativeinterface.cpp index 22d90d6ac2..db44e58cbb 100644 --- a/src/plugins/platforms/xcb/qxcbnativeinterface.cpp +++ b/src/plugins/platforms/xcb/qxcbnativeinterface.cpp @@ -306,13 +306,13 @@ QPlatformNativeInterface::NativeResourceForIntegrationFunction QXcbNativeInterfa return func; if (lowerCaseResource == "setstartupid") - return NativeResourceForIntegrationFunction(setStartupId); + return NativeResourceForIntegrationFunction(reinterpret_cast<void *>(setStartupId)); if (lowerCaseResource == "generatepeekerid") - return NativeResourceForIntegrationFunction(generatePeekerId); + return NativeResourceForIntegrationFunction(reinterpret_cast<void *>(generatePeekerId)); if (lowerCaseResource == "removepeekerid") - return NativeResourceForIntegrationFunction(removePeekerId); + return NativeResourceForIntegrationFunction(reinterpret_cast<void *>(removePeekerId)); if (lowerCaseResource == "peekeventqueue") - return NativeResourceForIntegrationFunction(peekEventQueue); + return NativeResourceForIntegrationFunction(reinterpret_cast<void *>(peekEventQueue)); return 0; } @@ -334,9 +334,9 @@ QPlatformNativeInterface::NativeResourceForScreenFunction QXcbNativeInterface::n return func; if (lowerCaseResource == "setapptime") - return NativeResourceForScreenFunction(setAppTime); + return NativeResourceForScreenFunction(reinterpret_cast<void *>(setAppTime)); else if (lowerCaseResource == "setappusertime") - return NativeResourceForScreenFunction(setAppUserTime); + return NativeResourceForScreenFunction(reinterpret_cast<void *>(setAppUserTime)); return 0; } @@ -388,7 +388,7 @@ QFunctionPointer QXcbNativeInterface::platformFunction(const QByteArray &functio } if (function == QXcbScreenFunctions::virtualDesktopNumberIdentifier()) - return QFunctionPointer(QXcbScreenFunctions::VirtualDesktopNumber(QXcbScreen::virtualDesktopNumberStatic)); + return QFunctionPointer(QXcbScreenFunctions::VirtualDesktopNumber(reinterpret_cast<void *>(QXcbScreen::virtualDesktopNumberStatic))); return nullptr; } diff --git a/src/testlib/qtestsystem.h b/src/testlib/qtestsystem.h index de6bd177d3..a6cea26884 100644 --- a/src/testlib/qtestsystem.h +++ b/src/testlib/qtestsystem.h @@ -112,7 +112,7 @@ namespace QTest { bool becameActive = qWaitFor([&]() { return window->isActive(); }, timeout); - // Try ensuring the platform window receives the real position. + // Try ensuring the platform window receives the real position and geometry. // (i.e. that window->pos() reflects reality) // isActive() ( == FocusIn in case of X) does not guarantee this. It seems some WMs randomly // send the final ConfigureNotify (the one with the non-bogus 0,0 position) after the FocusIn. @@ -120,7 +120,7 @@ namespace QTest // qWaitForWindowShown() will generate bogus results. if (becameActive) { int waitNo = 0; // 0, 0 might be a valid position after all, so do not wait for ever - while (window->position().isNull()) { + while (window->frameGeometry().isNull()) { if (waitNo++ > timeout / 10) break; qWait(10); diff --git a/tests/auto/network/access/qnetworkreply/BLACKLIST b/tests/auto/network/access/qnetworkreply/BLACKLIST index 0b691ada83..fab8224431 100644 --- a/tests/auto/network/access/qnetworkreply/BLACKLIST +++ b/tests/auto/network/access/qnetworkreply/BLACKLIST @@ -24,9 +24,9 @@ windows # QTBUG-66602 [ioHttpRedirectMultipartPost] * +# QTBUG-66247 [ioHttpRedirectPolicy] -b2qt 64bit -linux +* [ioHttpRedirectPostPut] linux windows diff --git a/tests/auto/network/socket/qudpsocket/BLACKLIST b/tests/auto/network/socket/qudpsocket/BLACKLIST index a98c4d5c6b..0d56f6c827 100644 --- a/tests/auto/network/socket/qudpsocket/BLACKLIST +++ b/tests/auto/network/socket/qudpsocket/BLACKLIST @@ -21,6 +21,6 @@ osx [zeroLengthDatagram] osx [linkLocalIPv6] -redhatenterpriselinuxworkstation-6.6 +linux [readyReadForEmptyDatagram] -ubuntu-16.04 +linux |