diff options
Diffstat (limited to 'src/plugins/platforms/windows')
86 files changed, 614 insertions, 457 deletions
diff --git a/src/plugins/platforms/windows/main.cpp b/src/plugins/platforms/windows/main.cpp index 980de88e72..8bde87c975 100644 --- a/src/plugins/platforms/windows/main.cpp +++ b/src/plugins/platforms/windows/main.cpp @@ -39,7 +39,7 @@ #include <qpa/qplatformintegrationplugin.h> -#include <QtCore/QStringList> +#include <QtCore/qstringlist.h> #include "qwindowsgdiintegration.h" diff --git a/src/plugins/platforms/windows/qwin10helpers.cpp b/src/plugins/platforms/windows/qwin10helpers.cpp index 5976fd23c0..cc17d8798f 100644 --- a/src/plugins/platforms/windows/qwin10helpers.cpp +++ b/src/plugins/platforms/windows/qwin10helpers.cpp @@ -39,8 +39,8 @@ #include "qwin10helpers.h" -#include <QtCore/QDebug> -#include <QtCore/QOperatingSystemVersion> +#include <QtCore/qdebug.h> +#include <QtCore/qoperatingsystemversion.h> #include <QtCore/private/qsystemlibrary_p.h> #if defined(Q_CC_MINGW) || defined(Q_CC_CLANG) diff --git a/src/plugins/platforms/windows/qwin10helpers.h b/src/plugins/platforms/windows/qwin10helpers.h index e1485003dd..4f364dfc59 100644 --- a/src/plugins/platforms/windows/qwin10helpers.h +++ b/src/plugins/platforms/windows/qwin10helpers.h @@ -40,7 +40,7 @@ #ifndef QWIN10HELPERS_H #define QWIN10HELPERS_H -#include <QtCore/QtGlobal> +#include <QtCore/qglobal.h> #include <QtCore/qt_windows.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/qwindowsbackingstore.cpp b/src/plugins/platforms/windows/qwindowsbackingstore.cpp index 80872c3ea3..03b44458ac 100644 --- a/src/plugins/platforms/windows/qwindowsbackingstore.cpp +++ b/src/plugins/platforms/windows/qwindowsbackingstore.cpp @@ -41,13 +41,13 @@ #include "qwindowswindow.h" #include "qwindowscontext.h" -#include <QtGui/QWindow> -#include <QtGui/QPainter> +#include <QtGui/qwindow.h> +#include <QtGui/qpainter.h> #include <QtFontDatabaseSupport/private/qwindowsnativeimage_p.h> #include <private/qhighdpiscaling_p.h> #include <private/qimage_p.h> -#include <QtCore/QDebug> +#include <QtCore/qdebug.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/qwindowsbackingstore.h b/src/plugins/platforms/windows/qwindowsbackingstore.h index 9e62266697..5692c08b1e 100644 --- a/src/plugins/platforms/windows/qwindowsbackingstore.h +++ b/src/plugins/platforms/windows/qwindowsbackingstore.h @@ -43,7 +43,7 @@ #include <QtCore/qt_windows.h> #include <qpa/qplatformbackingstore.h> -#include <QtCore/QScopedPointer> +#include <QtCore/qscopedpointer.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/qwindowsclipboard.cpp b/src/plugins/platforms/windows/qwindowsclipboard.cpp index 01191a7dc1..53f329422c 100644 --- a/src/plugins/platforms/windows/qwindowsclipboard.cpp +++ b/src/plugins/platforms/windows/qwindowsclipboard.cpp @@ -42,16 +42,16 @@ #include "qwindowsole.h" #include "qwindowsmime.h" -#include <QtGui/QGuiApplication> -#include <QtGui/QClipboard> -#include <QtGui/QColor> -#include <QtGui/QImage> - -#include <QtCore/QDebug> -#include <QtCore/QMimeData> -#include <QtCore/QStringList> -#include <QtCore/QVariant> -#include <QtCore/QUrl> +#include <QtGui/qguiapplication.h> +#include <QtGui/qclipboard.h> +#include <QtGui/qcolor.h> +#include <QtGui/qimage.h> + +#include <QtCore/qdebug.h> +#include <QtCore/qmimedata.h> +#include <QtCore/qstringlist.h> +#include <QtCore/qvariant.h> +#include <QtCore/qurl.h> #include <QtEventDispatcherSupport/private/qwindowsguieventdispatcher_p.h> diff --git a/src/plugins/platforms/windows/qwindowscombase.h b/src/plugins/platforms/windows/qwindowscombase.h index 5e51b6b7b7..937a2e69ce 100644 --- a/src/plugins/platforms/windows/qwindowscombase.h +++ b/src/plugins/platforms/windows/qwindowscombase.h @@ -40,7 +40,7 @@ #ifndef QWINDOWSCOMBASE_H #define QWINDOWSCOMBASE_H -#include <QtCore/QtGlobal> +#include <QtCore/qglobal.h> #include <unknwn.h> diff --git a/src/plugins/platforms/windows/qwindowscontext.cpp b/src/plugins/platforms/windows/qwindowscontext.cpp index 98a4b261fd..7a9733ba01 100644 --- a/src/plugins/platforms/windows/qwindowscontext.cpp +++ b/src/plugins/platforms/windows/qwindowscontext.cpp @@ -62,20 +62,19 @@ #include "qwindowsscreen.h" #include "qwindowstheme.h" -#include <QtGui/qtguiglobal.h> -#include <QtGui/QWindow> +#include <QtGui/qwindow.h> #include <qpa/qwindowsysteminterface.h> #include <qpa/qplatformnativeinterface.h> -#include <QtGui/QGuiApplication> -#include <QtGui/QOpenGLContext> - -#include <QtCore/QSet> -#include <QtCore/QHash> -#include <QtCore/QStringList> -#include <QtCore/QDebug> -#include <QtCore/QOperatingSystemVersion> -#include <QtCore/QSysInfo> -#include <QtCore/QScopedArrayPointer> +#include <QtGui/qguiapplication.h> +#include <QtGui/qopenglcontext.h> + +#include <QtCore/qset.h> +#include <QtCore/qhash.h> +#include <QtCore/qstringlist.h> +#include <QtCore/qdebug.h> +#include <QtCore/qoperatingsystemversion.h> +#include <QtCore/qsysinfo.h> +#include <QtCore/qscopedpointer.h> #include <QtCore/private/qsystemlibrary_p.h> #include <QtEventDispatcherSupport/private/qwindowsguieventdispatcher_p.h> @@ -1093,6 +1092,7 @@ bool QWindowsContext::windowsProc(HWND hwnd, UINT message, case QtWindows::ExitSizeMoveEvent: platformWindow->clearFlag(QWindowsWindow::ResizeMoveActive); platformWindow->checkForScreenChanged(); + QWindowsMouseHandler::handleExitSizeMove(platformWindow->window()); return true; case QtWindows::ScrollEvent: return sessionManagerInteractionBlocked() || d->m_mouseHandler.translateScrollEvent(platformWindow->window(), hwnd, msg, result); @@ -1400,7 +1400,7 @@ extern "C" LRESULT QT_WIN_CALLBACK qWindowsWndProc(HWND hwnd, UINT message, WPAR marginsFromRects(ncCalcSizeFrame, rectFromNcCalcSize(message, wParam, lParam, 0)); if (margins.left() >= 0) { if (platformWindow) { - platformWindow->setFrameMargins(margins); + platformWindow->setFullFrameMargins(margins); } else { const QSharedPointer<QWindowCreationContext> ctx = QWindowsContext::instance()->windowCreationContext(); if (!ctx.isNull()) diff --git a/src/plugins/platforms/windows/qwindowscontext.h b/src/plugins/platforms/windows/qwindowscontext.h index 0a7f20ca83..cb4d049081 100644 --- a/src/plugins/platforms/windows/qwindowscontext.h +++ b/src/plugins/platforms/windows/qwindowscontext.h @@ -43,9 +43,9 @@ #include "qtwindowsglobal.h" #include <QtCore/qt_windows.h> -#include <QtCore/QScopedPointer> -#include <QtCore/QSharedPointer> -#include <QtCore/QLoggingCategory> +#include <QtCore/qscopedpointer.h> +#include <QtCore/qsharedpointer.h> +#include <QtCore/qloggingcategory.h> #define STRICT_TYPED_ITEMIDS #include <shlobj.h> diff --git a/src/plugins/platforms/windows/qwindowscursor.cpp b/src/plugins/platforms/windows/qwindowscursor.cpp index e1a5837201..0924fb822e 100644 --- a/src/plugins/platforms/windows/qwindowscursor.cpp +++ b/src/plugins/platforms/windows/qwindowscursor.cpp @@ -43,16 +43,16 @@ #include "qwindowswindow.h" #include "qwindowsscreen.h" -#include <QtGui/QBitmap> -#include <QtGui/QImage> -#include <QtGui/QBitmap> -#include <QtGui/QGuiApplication> -#include <QtGui/QScreen> +#include <QtGui/qbitmap.h> +#include <QtGui/qimage.h> +#include <QtGui/qbitmap.h> +#include <QtGui/qguiapplication.h> +#include <QtGui/qscreen.h> #include <QtGui/private/qguiapplication_p.h> // getPixmapCursor() #include <QtGui/private/qhighdpiscaling_p.h> -#include <QtCore/QDebug> -#include <QtCore/QScopedArrayPointer> +#include <QtCore/qdebug.h> +#include <QtCore/qscopedpointer.h> static bool initResources() { diff --git a/src/plugins/platforms/windows/qwindowscursor.h b/src/plugins/platforms/windows/qwindowscursor.h index 53f185358b..715533e0af 100644 --- a/src/plugins/platforms/windows/qwindowscursor.h +++ b/src/plugins/platforms/windows/qwindowscursor.h @@ -43,8 +43,8 @@ #include <QtCore/qt_windows.h> #include <qpa/qplatformcursor.h> -#include <QtCore/QSharedPointer> -#include <QtCore/QHash> +#include <QtCore/qsharedpointer.h> +#include <QtCore/qhash.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp index 80ee7b2287..9738b4f7f5 100644 --- a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp +++ b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp @@ -51,24 +51,23 @@ #include "qwindowsintegration.h" #include "qwindowstheme.h" // Color conversion helpers -#include <QtGui/QGuiApplication> -#include <QtGui/QColor> - -#include <QtCore/QDebug> -#include <QtCore/QRegularExpression> -#include <QtCore/QTimer> -#include <QtCore/QDir> -#include <QtCore/QScopedArrayPointer> -#include <QtCore/QSharedPointer> -#include <QtCore/QObject> -#include <QtCore/QThread> -#include <QtCore/QSysInfo> -#include <QtCore/QSharedData> -#include <QtCore/QExplicitlySharedDataPointer> -#include <QtCore/QMutex> -#include <QtCore/QMutexLocker> -#include <QtCore/QUuid> -#include <QtCore/QTemporaryFile> +#include <QtGui/qguiapplication.h> +#include <QtGui/qcolor.h> + +#include <QtCore/qdebug.h> +#include <QtCore/qregularexpression.h> +#include <QtCore/qtimer.h> +#include <QtCore/qdir.h> +#include <QtCore/qscopedpointer.h> +#include <QtCore/qsharedpointer.h> +#include <QtCore/qobject.h> +#include <QtCore/qthread.h> +#include <QtCore/qsysinfo.h> +#include <QtCore/qshareddata.h> +#include <QtCore/qshareddata.h> +#include <QtCore/qmutex.h> +#include <QtCore/quuid.h> +#include <QtCore/qtemporaryfile.h> #include <QtCore/private/qsystemlibrary_p.h> #include <algorithm> diff --git a/src/plugins/platforms/windows/qwindowsdialoghelpers.h b/src/plugins/platforms/windows/qwindowsdialoghelpers.h index 55f112c57a..1cf0982bad 100644 --- a/src/plugins/platforms/windows/qwindowsdialoghelpers.h +++ b/src/plugins/platforms/windows/qwindowsdialoghelpers.h @@ -43,8 +43,8 @@ #include <QtCore/qt_windows.h> #include <qpa/qplatformdialoghelper.h> #include <qpa/qplatformtheme.h> -#include <QtCore/QStringList> -#include <QtCore/QSharedPointer> +#include <QtCore/qstringlist.h> +#include <QtCore/qsharedpointer.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/qwindowsdrag.cpp b/src/plugins/platforms/windows/qwindowsdrag.cpp index 593ff3cef1..7d9c8c3df8 100644 --- a/src/plugins/platforms/windows/qwindowsdrag.cpp +++ b/src/plugins/platforms/windows/qwindowsdrag.cpp @@ -50,18 +50,18 @@ #include "qwindowsmousehandler.h" #include "qwindowscursor.h" -#include <QtGui/QMouseEvent> -#include <QtGui/QPixmap> -#include <QtGui/QPainter> -#include <QtGui/QRasterWindow> -#include <QtGui/QGuiApplication> +#include <QtGui/qevent.h> +#include <QtGui/qpixmap.h> +#include <QtGui/qpainter.h> +#include <QtGui/qrasterwindow.h> +#include <QtGui/qguiapplication.h> #include <qpa/qwindowsysteminterface_p.h> #include <QtGui/private/qguiapplication_p.h> #include <QtGui/private/qhighdpiscaling_p.h> -#include <QtCore/QDebug> -#include <QtCore/QBuffer> -#include <QtCore/QPoint> +#include <QtCore/qdebug.h> +#include <QtCore/qbuffer.h> +#include <QtCore/qpoint.h> #include <shlobj.h> @@ -401,20 +401,16 @@ QWindowsOleDropSource::QueryContinueDrag(BOOL fEscapePressed, DWORD grfKeyState) switch (result) { case DRAGDROP_S_DROP: case DRAGDROP_S_CANCEL: - QGuiApplicationPrivate::modifier_buttons = toQtKeyboardModifiers(grfKeyState); - 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(), - Qt::LeftButton, QEvent::MouseButtonRelease); - } + if (!m_windowUnderMouse.isNull() && m_mode != TouchDrag && fEscapePressed == FALSE + && buttons != QGuiApplicationPrivate::mouse_buttons) { + // 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(), + Qt::LeftButton, QEvent::MouseButtonRelease); } m_currentButtons = Qt::NoButton; break; @@ -506,11 +502,13 @@ void QWindowsOleDropTarget::handleDrag(QWindow *window, DWORD grfKeyState, QWindowsDrag *windowsDrag = QWindowsDrag::instance(); const Qt::DropActions actions = translateToQDragDropActions(*pdwEffect); - QGuiApplicationPrivate::modifier_buttons = toQtKeyboardModifiers(grfKeyState); - QGuiApplicationPrivate::mouse_buttons = toQtMouseButtons(grfKeyState); + const Qt::KeyboardModifiers keyboardModifiers = toQtKeyboardModifiers(grfKeyState); + const Qt::MouseButtons mouseButtons = toQtMouseButtons(grfKeyState); const QPlatformDragQtResponse response = - QWindowSystemInterface::handleDrag(window, windowsDrag->dropData(), m_lastPoint, actions); + QWindowSystemInterface::handleDrag(window, windowsDrag->dropData(), + m_lastPoint, actions, + mouseButtons, keyboardModifiers); m_answerRect = response.answerRect(); const Qt::DropAction action = response.acceptedAction(); @@ -522,8 +520,7 @@ void QWindowsOleDropTarget::handleDrag(QWindow *window, DWORD grfKeyState, *pdwEffect = m_chosenEffect; qCDebug(lcQpaMime) << __FUNCTION__ << m_window << windowsDrag->dropData() << " supported actions=" << actions - << " mods=" << QGuiApplicationPrivate::modifier_buttons - << " mouse=" << QGuiApplicationPrivate::mouse_buttons + << " mods=" << keyboardModifiers << " mouse=" << mouseButtons << " accepted: " << response.isAccepted() << action << m_answerRect << " effect" << *pdwEffect; } @@ -574,13 +571,11 @@ QWindowsOleDropTarget::DragLeave() qCDebug(lcQpaMime) << __FUNCTION__ << ' ' << m_window; - QWindowSystemInterface::handleDrag(m_window, 0, QPoint(), Qt::IgnoreAction); + QWindowSystemInterface::handleDrag(m_window, 0, QPoint(), Qt::IgnoreAction, + Qt::NoButton, Qt::NoModifier); - if (!QDragManager::self()->source()) { - QGuiApplicationPrivate::modifier_buttons = Qt::NoModifier; - QGuiApplicationPrivate::mouse_buttons = Qt::NoButton; + if (!QDragManager::self()->source()) m_lastKeyState = 0; - } QWindowsDrag::instance()->releaseDropDataObject(); return NOERROR; @@ -599,18 +594,16 @@ QWindowsOleDropTarget::Drop(LPDATAOBJECT pDataObj, DWORD grfKeyState, << "keys=" << grfKeyState << "pt=" << pt.x << ',' << pt.y; m_lastPoint = QWindowsGeometryHint::mapFromGlobal(m_window, QPoint(pt.x,pt.y)); - // grfKeyState does not all ways contain button state in the drop - QGuiApplicationPrivate::mouse_buttons = toQtMouseButtons(m_lastKeyState); - QGuiApplicationPrivate::modifier_buttons = toQtKeyboardModifiers(grfKeyState); QWindowsDrag *windowsDrag = QWindowsDrag::instance(); const QPlatformDropQtResponse response = QWindowSystemInterface::handleDrop(m_window, windowsDrag->dropData(), m_lastPoint, - translateToQDragDropActions(*pdwEffect)); + translateToQDragDropActions(*pdwEffect), + toQtMouseButtons(grfKeyState), + toQtKeyboardModifiers(grfKeyState)); - QGuiApplicationPrivate::mouse_buttons = toQtMouseButtons(grfKeyState); m_lastKeyState = grfKeyState; if (response.isAccepted()) { diff --git a/src/plugins/platforms/windows/qwindowsdrag.h b/src/plugins/platforms/windows/qwindowsdrag.h index 2b4ca2dce1..4e13216e73 100644 --- a/src/plugins/platforms/windows/qwindowsdrag.h +++ b/src/plugins/platforms/windows/qwindowsdrag.h @@ -44,7 +44,7 @@ #include "qwindowsinternalmimedata.h" #include <qpa/qplatformdrag.h> -#include <QtGui/QPixmap> +#include <QtGui/qpixmap.h> struct IDropTargetHelper; diff --git a/src/plugins/platforms/windows/qwindowsdropdataobject.cpp b/src/plugins/platforms/windows/qwindowsdropdataobject.cpp index bd532ab70e..26d5c04844 100644 --- a/src/plugins/platforms/windows/qwindowsdropdataobject.cpp +++ b/src/plugins/platforms/windows/qwindowsdropdataobject.cpp @@ -39,8 +39,8 @@ #include "qwindowsdropdataobject.h" -#include <QtCore/QUrl> -#include <QtCore/QMimeData> +#include <QtCore/qurl.h> +#include <QtCore/qmimedata.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/qwindowseglcontext.cpp b/src/plugins/platforms/windows/qwindowseglcontext.cpp index 4632c9c157..a8d0a42bdb 100644 --- a/src/plugins/platforms/windows/qwindowseglcontext.cpp +++ b/src/plugins/platforms/windows/qwindowseglcontext.cpp @@ -41,8 +41,8 @@ #include "qwindowscontext.h" #include "qwindowswindow.h" -#include <QtCore/QDebug> -#include <QtGui/QOpenGLContext> +#include <QtCore/qdebug.h> +#include <QtGui/qopenglcontext.h> #if defined(QT_OPENGL_ES_2_ANGLE) || defined(QT_OPENGL_DYNAMIC) # include <EGL/eglext.h> diff --git a/src/plugins/platforms/windows/qwindowsgdiintegration.cpp b/src/plugins/platforms/windows/qwindowsgdiintegration.cpp index 51f74518f7..c88f669eb5 100644 --- a/src/plugins/platforms/windows/qwindowsgdiintegration.cpp +++ b/src/plugins/platforms/windows/qwindowsgdiintegration.cpp @@ -42,7 +42,7 @@ #include "qwindowsbackingstore.h" #include "qwindowsgdinativeinterface.h" -#include <QtCore/QDebug> +#include <QtCore/qdebug.h> #include <QtGui/private/qpixmap_raster_p.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/qwindowsgdinativeinterface.cpp b/src/plugins/platforms/windows/qwindowsgdinativeinterface.cpp index c7796d959e..4ba7108f45 100644 --- a/src/plugins/platforms/windows/qwindowsgdinativeinterface.cpp +++ b/src/plugins/platforms/windows/qwindowsgdinativeinterface.cpp @@ -40,7 +40,7 @@ #include "qwindowsgdinativeinterface.h" #include "qwindowsbackingstore.h" -#include <QtGui/QBackingStore> +#include <QtGui/qbackingstore.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/qwindowsglcontext.cpp b/src/plugins/platforms/windows/qwindowsglcontext.cpp index e9c52e2c02..6358778914 100644 --- a/src/plugins/platforms/windows/qwindowsglcontext.cpp +++ b/src/plugins/platforms/windows/qwindowsglcontext.cpp @@ -42,11 +42,11 @@ #include "qwindowswindow.h" #include "qwindowsintegration.h" -#include <QtCore/QDebug> -#include <QtCore/QSysInfo> -#include <QtGui/QGuiApplication> +#include <QtCore/qdebug.h> +#include <QtCore/qsysinfo.h> +#include <QtGui/qguiapplication.h> #include <qpa/qplatformnativeinterface.h> -#include <QtPlatformHeaders/QWGLNativeContext> +#include <QtPlatformHeaders/qwglnativecontext.h> #include <algorithm> diff --git a/src/plugins/platforms/windows/qwindowsglcontext.h b/src/plugins/platforms/windows/qwindowsglcontext.h index 2d5b94af0e..2e89711740 100644 --- a/src/plugins/platforms/windows/qwindowsglcontext.h +++ b/src/plugins/platforms/windows/qwindowsglcontext.h @@ -43,7 +43,7 @@ #include <QtCore/qt_windows.h> #include "qwindowsopenglcontext.h" -#include <QtGui/QOpenGLContext> +#include <QtGui/qopenglcontext.h> #include <vector> diff --git a/src/plugins/platforms/windows/qwindowsinputcontext.cpp b/src/plugins/platforms/windows/qwindowsinputcontext.cpp index 2dbca6047c..9f4dea915e 100644 --- a/src/plugins/platforms/windows/qwindowsinputcontext.cpp +++ b/src/plugins/platforms/windows/qwindowsinputcontext.cpp @@ -43,16 +43,15 @@ #include "qwindowsintegration.h" #include "qwindowsmousehandler.h" -#include <QtCore/QDebug> -#include <QtCore/QObject> -#include <QtCore/QRect> -#include <QtCore/QRectF> -#include <QtCore/QTextBoundaryFinder> - -#include <QtGui/QInputMethodEvent> -#include <QtGui/QTextCharFormat> -#include <QtGui/QPalette> -#include <QtGui/QGuiApplication> +#include <QtCore/qdebug.h> +#include <QtCore/qobject.h> +#include <QtCore/qrect.h> +#include <QtCore/qtextboundaryfinder.h> + +#include <QtGui/qevent.h> +#include <QtGui/qtextformat.h> +#include <QtGui/qpalette.h> +#include <QtGui/qguiapplication.h> #include <private/qhighdpiscaling_p.h> diff --git a/src/plugins/platforms/windows/qwindowsinputcontext.h b/src/plugins/platforms/windows/qwindowsinputcontext.h index ada1fc0d29..35105d15ff 100644 --- a/src/plugins/platforms/windows/qwindowsinputcontext.h +++ b/src/plugins/platforms/windows/qwindowsinputcontext.h @@ -42,8 +42,8 @@ #include <QtCore/qt_windows.h> -#include <QtCore/QLocale> -#include <QtCore/QPointer> +#include <QtCore/qlocale.h> +#include <QtCore/qpointer.h> #include <qpa/qplatforminputcontext.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/qwindowsintegration.cpp b/src/plugins/platforms/windows/qwindowsintegration.cpp index 287b65cd5d..15ccf99f41 100644 --- a/src/plugins/platforms/windows/qwindowsintegration.cpp +++ b/src/plugins/platforms/windows/qwindowsintegration.cpp @@ -76,8 +76,8 @@ #include <QtEventDispatcherSupport/private/qwindowsguieventdispatcher_p.h> -#include <QtCore/QDebug> -#include <QtCore/QVariant> +#include <QtCore/qdebug.h> +#include <QtCore/qvariant.h> #include <limits.h> @@ -332,7 +332,7 @@ QPlatformWindow *QWindowsIntegration::createPlatformWindow(QWindow *window) cons << "\n Requested: " << requested.geometry << " frame incl.=" << QWindowsGeometryHint::positionIncludesFrame(window) << ' ' << requested.flags - << "\n Obtained : " << obtained.geometry << " margins=" << obtained.frame + << "\n Obtained : " << obtained.geometry << " margins=" << obtained.fullFrameMargins << " handle=" << obtained.hwnd << ' ' << obtained.flags << '\n'; if (Q_UNLIKELY(!obtained.hwnd)) diff --git a/src/plugins/platforms/windows/qwindowsintegration.h b/src/plugins/platforms/windows/qwindowsintegration.h index 23f3d9ef4e..aa051df61f 100644 --- a/src/plugins/platforms/windows/qwindowsintegration.h +++ b/src/plugins/platforms/windows/qwindowsintegration.h @@ -42,7 +42,7 @@ #define QWINDOWSINTEGRATION_H #include <qpa/qplatformintegration.h> -#include <QtCore/QScopedPointer> +#include <QtCore/qscopedpointer.h> #include <QtFontDatabaseSupport/private/qwindowsfontdatabase_p.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/qwindowsinternalmimedata.cpp b/src/plugins/platforms/windows/qwindowsinternalmimedata.cpp index 21ebee6262..8f1d8f73d9 100644 --- a/src/plugins/platforms/windows/qwindowsinternalmimedata.cpp +++ b/src/plugins/platforms/windows/qwindowsinternalmimedata.cpp @@ -40,7 +40,7 @@ #include "qwindowsinternalmimedata.h" #include "qwindowscontext.h" #include "qwindowsmime.h" -#include <QDebug> +#include <QtCore/qdebug.h> /*! \class QWindowsInternalMimeDataBase \brief Base for implementations of QInternalMimeData using a IDataObject COM object. diff --git a/src/plugins/platforms/windows/qwindowsinternalmimedata.h b/src/plugins/platforms/windows/qwindowsinternalmimedata.h index a7df1ee6e0..c391e81969 100644 --- a/src/plugins/platforms/windows/qwindowsinternalmimedata.h +++ b/src/plugins/platforms/windows/qwindowsinternalmimedata.h @@ -43,7 +43,7 @@ #include <QtCore/qt_windows.h> #include <QtGui/private/qdnd_p.h> // QInternalMime -#include <QtCore/QVariant> +#include <QtCore/qvariant.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/qwindowskeymapper.cpp b/src/plugins/platforms/windows/qwindowskeymapper.cpp index 950d8ecd36..48941d78ca 100644 --- a/src/plugins/platforms/windows/qwindowskeymapper.cpp +++ b/src/plugins/platforms/windows/qwindowskeymapper.cpp @@ -43,13 +43,14 @@ #include "qwindowswindow.h" #include "qwindowsinputcontext.h" -#include <QtGui/QGuiApplication> -#include <QtGui/QWindow> +#include <QtGui/qguiapplication.h> +#include <QtGui/qwindow.h> #include <qpa/qwindowsysteminterface.h> #include <private/qguiapplication_p.h> #include <private/qhighdpiscaling_p.h> -#include <QtGui/QKeyEvent> +#include <QtGui/qevent.h> #include <QtEventDispatcherSupport/private/qwindowsguieventdispatcher_p.h> +#include <QtCore/private/qdebug_p.h> #if defined(WM_APPCOMMAND) # ifndef FAPPCOMMAND_MOUSE @@ -544,6 +545,59 @@ static const Qt::KeyboardModifiers ModsTbl[] = { static const size_t NumMods = sizeof ModsTbl / sizeof *ModsTbl; Q_STATIC_ASSERT((NumMods == KeyboardLayoutItem::NumQtKeys)); +#ifndef QT_NO_DEBUG_STREAM +QDebug operator<<(QDebug d, const KeyboardLayoutItem &k) +{ + QDebugStateSaver saver(d); + d.nospace(); + d << "KeyboardLayoutItem("; + if (k.exists) { + for (size_t i = 0; i < NumMods; ++i) { + if (const quint32 qtKey = k.qtKey[i]) { + d << '[' << i << ' '; + QtDebugUtils::formatQFlags(d, ModsTbl[i]); + d << ' ' << hex << showbase << qtKey << dec << noshowbase << ' '; + QtDebugUtils::formatQEnum(d, Qt::Key(qtKey)); + if (qtKey >= 32 && qtKey < 128) + d << " '" << char(qtKey) << '\''; + if (k.deadkeys & (1<<i)) + d << " deadkey"; + d << "] "; + } + } + } + d << ')'; + return d; +} + +// Helpers to format a list of int as Qt key sequence +class formatKeys +{ +public: + explicit formatKeys(const QList<int> &keys) : m_keys(keys) {} + +private: + friend QDebug operator<<(QDebug d, const formatKeys &keys); + const QList<int> &m_keys; +}; + +QDebug operator<<(QDebug d, const formatKeys &k) +{ + QDebugStateSaver saver(d); + d.nospace(); + d << '('; + for (int i =0, size = k.m_keys.size(); i < size; ++i) { + if (i) + d << ", "; + d << QKeySequence(k.m_keys.at(i)); + } + d << ')'; + return d; +} +#else // !QT_NO_DEBUG_STREAM +static int formatKeys(const QList<int> &) { return 0; } +#endif // QT_NO_DEBUG_STREAM + /** Remap return or action key to select key for windows mobile. */ @@ -722,21 +776,8 @@ void QWindowsKeyMapper::updatePossibleKeyCodes(unsigned char *kbdBuffer, quint32 ::ToAscii(VK_SPACE, 0, emptyBuffer, reinterpret_cast<LPWORD>(&buffer), 0); ::ToAscii(vk_key, scancode, kbdBuffer, reinterpret_cast<LPWORD>(&buffer), 0); } - if (QWindowsContext::verbose > 1 && lcQpaEvents().isDebugEnabled()) { - QString message; - QDebug debug(&message); - debug <<__FUNCTION__ << " for virtual key = 0x" << hex << vk_key << dec<< '\n'; - for (size_t i = 0; i < NumMods; ++i) { - const quint32 qtKey = keyLayout[vk_key].qtKey[i]; - debug << " [" << i << "] (" << qtKey << ',' - << hex << showbase << qtKey << noshowbase << dec - << ",'" << char(qtKey ? qtKey : 0x03) << "')"; - if (keyLayout[vk_key].deadkeys & (1<<i)) - debug << " deadkey"; - debug << '\n'; - } - qCDebug(lcQpaEvents) << message; - } + qCDebug(lcQpaEvents) << __FUNCTION__ << "for virtual key=" + << hex << showbase << vk_key << dec << noshowbase << keyLayout[vk_key]; } static inline QString messageKeyText(const MSG &msg) @@ -1287,7 +1328,9 @@ QList<int> QWindowsKeyMapper::possibleKeys(const QKeyEvent *e) const *it = matchedKey; } } - + qCDebug(lcQpaEvents) << __FUNCTION__ << e << "nativeVirtualKey=" + << showbase << hex << e->nativeVirtualKey() << dec << noshowbase + << e->modifiers() << kbItem << "\n returns" << formatKeys(result); return result; } diff --git a/src/plugins/platforms/windows/qwindowskeymapper.h b/src/plugins/platforms/windows/qwindowskeymapper.h index c6b46b0c30..d569c82437 100644 --- a/src/plugins/platforms/windows/qwindowskeymapper.h +++ b/src/plugins/platforms/windows/qwindowskeymapper.h @@ -42,7 +42,7 @@ #include <QtCore/qt_windows.h> -#include <QtCore/QLocale> +#include <QtCore/qlocale.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/qwindowsmenu.h b/src/plugins/platforms/windows/qwindowsmenu.h index d51a29676e..6ed8315417 100644 --- a/src/plugins/platforms/windows/qwindowsmenu.h +++ b/src/plugins/platforms/windows/qwindowsmenu.h @@ -44,8 +44,8 @@ #include <qpa/qplatformmenu.h> -#include <QtCore/QVector> -#include <QtCore/QPair> +#include <QtCore/qvector.h> +#include <QtCore/qpair.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/qwindowsmime.cpp b/src/plugins/platforms/windows/qwindowsmime.cpp index 34e6041687..cac6f5dafc 100644 --- a/src/plugins/platforms/windows/qwindowsmime.cpp +++ b/src/plugins/platforms/windows/qwindowsmime.cpp @@ -41,15 +41,15 @@ #include "qwindowscontext.h" #include <QtGui/private/qdnd_p.h> -#include <QtCore/QByteArrayMatcher> -#include <QtCore/QTextCodec> -#include <QtCore/QMap> -#include <QtCore/QUrl> -#include <QtCore/QDir> -#include <QtCore/QDebug> -#include <QtCore/QBuffer> -#include <QtGui/QImageReader> -#include <QtGui/QImageWriter> +#include <QtCore/qbytearraymatcher.h> +#include <QtCore/qtextcodec.h> +#include <QtCore/qmap.h> +#include <QtCore/qurl.h> +#include <QtCore/qdir.h> +#include <QtCore/qdebug.h> +#include <QtCore/qbuffer.h> +#include <QtGui/qimagereader.h> +#include <QtGui/qimagewriter.h> #include <shlobj.h> #include <algorithm> diff --git a/src/plugins/platforms/windows/qwindowsmime.h b/src/plugins/platforms/windows/qwindowsmime.h index 1ed2aa933f..6bbbae1a0e 100644 --- a/src/plugins/platforms/windows/qwindowsmime.h +++ b/src/plugins/platforms/windows/qwindowsmime.h @@ -42,9 +42,9 @@ #include <QtCore/qt_windows.h> -#include <QtCore/QVector> -#include <QtCore/QList> -#include <QtCore/QVariant> +#include <QtCore/qvector.h> +#include <QtCore/qlist.h> +#include <QtCore/qvariant.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/qwindowsmousehandler.cpp b/src/plugins/platforms/windows/qwindowsmousehandler.cpp index 17851618b4..bec935cd80 100644 --- a/src/plugins/platforms/windows/qwindowsmousehandler.cpp +++ b/src/plugins/platforms/windows/qwindowsmousehandler.cpp @@ -45,14 +45,14 @@ #include "qwindowsscreen.h" #include <qpa/qwindowsysteminterface.h> -#include <QtGui/QGuiApplication> -#include <QtGui/QScreen> -#include <QtGui/QTouchDevice> -#include <QtGui/QWindow> -#include <QtGui/QCursor> +#include <QtGui/qguiapplication.h> +#include <QtGui/qscreen.h> +#include <QtGui/qtouchdevice.h> +#include <QtGui/qwindow.h> +#include <QtGui/qcursor.h> -#include <QtCore/QDebug> -#include <QtCore/QScopedArrayPointer> +#include <QtCore/qdebug.h> +#include <QtCore/qscopedpointer.h> #include <windowsx.h> @@ -178,6 +178,109 @@ Qt::MouseButtons QWindowsMouseHandler::queryMouseButtons() return result; } +void QWindowsMouseHandler::handleExitSizeMove(QWindow *window) +{ + // When moving a window by dragging the title bar, no WM_NCLBUTTONUP is + // received after WM_NCLBUTTONDOWN, WM_NCMOUSEMOVE (due to internal + // mouse capture), which can leave the left mouse button 'pressed' + // in QGuiApplication's state. Intercept WM_EXITSIZEMOVE to sync the buttons. + const Qt::MouseButtons currentButtons = QWindowsMouseHandler::queryMouseButtons(); + const Qt::MouseButtons appButtons = QGuiApplication::mouseButtons(); + if (currentButtons == appButtons) + return; + const Qt::KeyboardModifiers keyboardModifiers = QWindowsKeyMapper::queryKeyboardModifiers(); + const QPoint globalPos = QWindowsCursor::mousePosition(); + const QPoint localPos = window->handle()->mapFromGlobal(globalPos); + for (Qt::MouseButton button : {Qt::LeftButton, Qt::RightButton, Qt::MiddleButton}) { + if (appButtons.testFlag(button) && !currentButtons.testFlag(button)) { + QWindowSystemInterface::handleMouseEvent(window, localPos, globalPos, + currentButtons, button, + QEvent::NonClientAreaMouseButtonRelease, + keyboardModifiers, + Qt::MouseEventNotSynthesized); + } + } +} + +static QPoint lastMouseMovePos; + +namespace { +struct MouseEvent { + QEvent::Type type; + Qt::MouseButton button; +}; + +#ifndef QT_NO_DEBUG_STREAM +QDebug operator<<(QDebug d, const MouseEvent &e) +{ + QDebugStateSaver saver(d); + d.nospace(); + d << "MouseEvent(" << e.type << ", " << e.button << ')'; + return d; +} +#endif // QT_NO_DEBUG_STREAM +} // namespace + +static inline Qt::MouseButton extraButton(WPARAM wParam) // for WM_XBUTTON... +{ + return GET_XBUTTON_WPARAM(wParam) == XBUTTON1 ? Qt::BackButton : Qt::ForwardButton; +} + +static inline MouseEvent eventFromMsg(const MSG &msg) +{ + switch (msg.message) { + case WM_MOUSEMOVE: + return {QEvent::MouseMove, Qt::NoButton}; + case WM_LBUTTONDOWN: + return {QEvent::MouseButtonPress, Qt::LeftButton}; + case WM_LBUTTONUP: + return {QEvent::MouseButtonRelease, Qt::LeftButton}; + case WM_LBUTTONDBLCLK: + return {QEvent::MouseButtonDblClick, Qt::LeftButton}; + case WM_MBUTTONDOWN: + return {QEvent::MouseButtonPress, Qt::MidButton}; + case WM_MBUTTONUP: + return {QEvent::MouseButtonRelease, Qt::MidButton}; + case WM_MBUTTONDBLCLK: + return {QEvent::MouseButtonDblClick, Qt::MidButton}; + case WM_RBUTTONDOWN: + return {QEvent::MouseButtonPress, Qt::RightButton}; + case WM_RBUTTONUP: + return {QEvent::MouseButtonRelease, Qt::RightButton}; + case WM_RBUTTONDBLCLK: + return {QEvent::MouseButtonDblClick, Qt::RightButton}; + case WM_XBUTTONDOWN: + return {QEvent::MouseButtonPress, extraButton(msg.wParam)}; + case WM_XBUTTONUP: + return {QEvent::MouseButtonRelease, extraButton(msg.wParam)}; + case WM_XBUTTONDBLCLK: + return {QEvent::MouseButtonDblClick, extraButton(msg.wParam)}; + case WM_NCMOUSEMOVE: + return {QEvent::NonClientAreaMouseMove, Qt::NoButton}; + case WM_NCLBUTTONDOWN: + return {QEvent::NonClientAreaMouseButtonPress, Qt::LeftButton}; + case WM_NCLBUTTONUP: + return {QEvent::NonClientAreaMouseButtonRelease, Qt::LeftButton}; + case WM_NCLBUTTONDBLCLK: + return {QEvent::NonClientAreaMouseButtonDblClick, Qt::LeftButton}; + case WM_NCMBUTTONDOWN: + return {QEvent::NonClientAreaMouseButtonPress, Qt::MidButton}; + case WM_NCMBUTTONUP: + return {QEvent::NonClientAreaMouseButtonRelease, Qt::MidButton}; + case WM_NCMBUTTONDBLCLK: + return {QEvent::NonClientAreaMouseButtonDblClick, Qt::MidButton}; + case WM_NCRBUTTONDOWN: + return {QEvent::NonClientAreaMouseButtonPress, Qt::RightButton}; + case WM_NCRBUTTONUP: + return {QEvent::NonClientAreaMouseButtonRelease, Qt::RightButton}; + case WM_NCRBUTTONDBLCLK: + return {QEvent::NonClientAreaMouseButtonDblClick, Qt::RightButton}; + default: // WM_MOUSELEAVE + break; + } + return {QEvent::None, Qt::NoButton}; +} + bool QWindowsMouseHandler::translateMouseEvent(QWindow *window, HWND hwnd, QtWindows::WindowsEventType et, MSG msg, LRESULT *result) @@ -192,8 +295,33 @@ bool QWindowsMouseHandler::translateMouseEvent(QWindow *window, HWND hwnd, if (et == QtWindows::MouseWheelEvent) return translateMouseWheelEvent(window, hwnd, msg, result); + const QPoint winEventPosition(GET_X_LPARAM(msg.lParam), GET_Y_LPARAM(msg.lParam)); + QPoint clientPosition; + QPoint globalPosition; + if (et & QtWindows::NonClientEventFlag) { + globalPosition = winEventPosition; + clientPosition = QWindowsGeometryHint::mapFromGlobal(hwnd, globalPosition); + } else { + clientPosition = winEventPosition; + globalPosition = QWindowsGeometryHint::mapToGlobal(hwnd, winEventPosition); + } + + // Windows sends a mouse move with no buttons pressed to signal "Enter" + // when a window is shown over the cursor. Discard the event and only use + // it for generating QEvent::Enter to be consistent with other platforms - + // X11 and macOS. + bool discardEvent = false; + if (msg.message == WM_MOUSEMOVE) { + const bool samePosition = globalPosition == lastMouseMovePos; + lastMouseMovePos = globalPosition; + if (msg.wParam == 0 && (m_windowUnderMouse.isNull() || samePosition)) + discardEvent = true; + } + Qt::MouseEventSource source = Qt::MouseEventNotSynthesized; + const MouseEvent mouseEvent = eventFromMsg(msg); + // Check for events synthesized from touch. Lower byte is touch index, 0 means pen. static const bool passSynthesizedMouseEvents = !(QWindowsIntegration::instance()->options() & QWindowsIntegration::DontPassOsMouseEventsSynthesizedFromTouch); @@ -210,13 +338,11 @@ bool QWindowsMouseHandler::translateMouseEvent(QWindow *window, HWND hwnd, } } - const QPoint winEventPosition(GET_X_LPARAM(msg.lParam), GET_Y_LPARAM(msg.lParam)); - if (et & QtWindows::NonClientEventFlag) { - const QPoint globalPosition = winEventPosition; - const QPoint clientPosition = QWindowsGeometryHint::mapFromGlobal(hwnd, globalPosition); + if (mouseEvent.type >= QEvent::NonClientAreaMouseMove && mouseEvent.type <= QEvent::NonClientAreaMouseButtonDblClick) { const Qt::MouseButtons buttons = QWindowsMouseHandler::queryMouseButtons(); QWindowSystemInterface::handleFrameStrutMouseEvent(window, clientPosition, globalPosition, buttons, + mouseEvent.button, mouseEvent.type, QWindowsKeyMapper::queryKeyboardModifiers(), source); return false; // Allow further event processing (dragging of windows). @@ -224,7 +350,8 @@ bool QWindowsMouseHandler::translateMouseEvent(QWindow *window, HWND hwnd, *result = 0; if (msg.message == WM_MOUSELEAVE) { - qCDebug(lcQpaEvents) << "WM_MOUSELEAVE for " << window << " previous window under mouse = " << m_windowUnderMouse << " tracked window =" << m_trackedWindow; + qCDebug(lcQpaEvents) << mouseEvent << "for" << window << "previous window under mouse=" + << m_windowUnderMouse << "tracked window=" << m_trackedWindow; // When moving out of a window, WM_MOUSEMOVE within the moved-to window is received first, // so if m_trackedWindow is not the window here, it means the cursor has left the @@ -269,7 +396,6 @@ bool QWindowsMouseHandler::translateMouseEvent(QWindow *window, HWND hwnd, } } - const QPoint globalPosition = QWindowsGeometryHint::mapToGlobal(hwnd, winEventPosition); // In this context, neither an invisible nor a transparent window (transparent regarding mouse // events, "click-through") can be considered as the window under mouse. QWindow *currentWindowUnderMouse = platformWindow->hasMouseCapture() ? @@ -290,10 +416,7 @@ bool QWindowsMouseHandler::translateMouseEvent(QWindow *window, HWND hwnd, // Qt expects the platform plugin to capture the mouse on // any button press until release. if (!platformWindow->hasMouseCapture() - && (msg.message == WM_LBUTTONDOWN || msg.message == WM_MBUTTONDOWN - || msg.message == WM_RBUTTONDOWN || msg.message == WM_XBUTTONDOWN - || msg.message == WM_LBUTTONDBLCLK || msg.message == WM_MBUTTONDBLCLK - || msg.message == WM_RBUTTONDBLCLK || msg.message == WM_XBUTTONDBLCLK)) { + && (mouseEvent.type == QEvent::MouseButtonPress || mouseEvent.type == QEvent::MouseButtonDblClick)) { platformWindow->setMouseGrabEnabled(true); platformWindow->setFlag(QWindowsWindow::AutoMouseCapture); qCDebug(lcQpaEvents) << "Automatic mouse capture " << window; @@ -302,8 +425,7 @@ bool QWindowsMouseHandler::translateMouseEvent(QWindow *window, HWND hwnd, window->requestActivate(); } else if (platformWindow->hasMouseCapture() && platformWindow->testFlag(QWindowsWindow::AutoMouseCapture) - && (msg.message == WM_LBUTTONUP || msg.message == WM_MBUTTONUP - || msg.message == WM_RBUTTONUP || msg.message == WM_XBUTTONUP) + && mouseEvent.type == QEvent::MouseButtonRelease && !buttons) { platformWindow->setMouseGrabEnabled(false); qCDebug(lcQpaEvents) << "Releasing automatic mouse capture " << window; @@ -369,9 +491,12 @@ bool QWindowsMouseHandler::translateMouseEvent(QWindow *window, HWND hwnd, m_windowUnderMouse = currentWindowUnderMouse; } - QWindowSystemInterface::handleMouseEvent(window, winEventPosition, globalPosition, buttons, - QWindowsKeyMapper::queryKeyboardModifiers(), - source); + if (!discardEvent && mouseEvent.type != QEvent::None) { + QWindowSystemInterface::handleMouseEvent(window, winEventPosition, globalPosition, buttons, + mouseEvent.button, mouseEvent.type, + QWindowsKeyMapper::queryKeyboardModifiers(), + source); + } m_previousCaptureWindow = hasCapture ? window : 0; // QTBUG-48117, force synchronous handling for the extra buttons so that WM_APPCOMMAND // is sent for unhandled WM_XBUTTONDOWN. @@ -411,9 +536,10 @@ static void redirectWheelEvent(QWindow *window, const QPoint &globalPos, int del } if (handleEvent) { + const QPoint point = (orientation == Qt::Vertical) ? QPoint(0, delta) : QPoint(delta, 0); QWindowSystemInterface::handleWheelEvent(receiver, QWindowsGeometryHint::mapFromGlobal(receiver, globalPos), - globalPos, delta, orientation, mods); + globalPos, QPoint(), point, mods); } } diff --git a/src/plugins/platforms/windows/qwindowsmousehandler.h b/src/plugins/platforms/windows/qwindowsmousehandler.h index 86f18a0482..04d3a8bff6 100644 --- a/src/plugins/platforms/windows/qwindowsmousehandler.h +++ b/src/plugins/platforms/windows/qwindowsmousehandler.h @@ -43,8 +43,8 @@ #include "qtwindowsglobal.h" #include <QtCore/qt_windows.h> -#include <QtCore/QPointer> -#include <QtCore/QHash> +#include <QtCore/qpointer.h> +#include <QtCore/qhash.h> QT_BEGIN_NAMESPACE @@ -80,6 +80,8 @@ public: QWindow *windowUnderMouse() const { return m_windowUnderMouse.data(); } void clearWindowUnderMouse() { m_windowUnderMouse = 0; } + static void handleExitSizeMove(QWindow *window); + private: inline bool translateMouseWheelEvent(QWindow *window, HWND hwnd, MSG msg, LRESULT *result); diff --git a/src/plugins/platforms/windows/qwindowsnativeinterface.cpp b/src/plugins/platforms/windows/qwindowsnativeinterface.cpp index 324b00144e..11e514390a 100644 --- a/src/plugins/platforms/windows/qwindowsnativeinterface.cpp +++ b/src/plugins/platforms/windows/qwindowsnativeinterface.cpp @@ -48,9 +48,9 @@ #include "qwindowsmime.h" #include "qwin10helpers.h" -#include <QtGui/QWindow> -#include <QtGui/QOpenGLContext> -#include <QtGui/QScreen> +#include <QtGui/qwindow.h> +#include <QtGui/qopenglcontext.h> +#include <QtGui/qscreen.h> #include <qpa/qplatformscreen.h> #include <QtFontDatabaseSupport/private/qwindowsfontdatabase_p.h> @@ -111,15 +111,14 @@ void *QWindowsNativeInterface::nativeResourceForWindow(const QByteArray &resourc return 0; } break; - case QWindow::OpenGLSurface: - case QWindow::OpenVGSurface: - break; case QWindow::VulkanSurface: #if QT_CONFIG(vulkan) if (type == VkSurface) return bw->surface(nullptr, nullptr); // returns the address of the VkSurfaceKHR, not the value, as expected #endif break; + default: + break; } qWarning("%s: Invalid key '%s' requested.", __FUNCTION__, resource.constData()); return 0; diff --git a/src/plugins/platforms/windows/qwindowsole.cpp b/src/plugins/platforms/windows/qwindowsole.cpp index 0ceb0d82fa..3e62bbdeca 100644 --- a/src/plugins/platforms/windows/qwindowsole.cpp +++ b/src/plugins/platforms/windows/qwindowsole.cpp @@ -41,14 +41,14 @@ #include "qwindowsmime.h" #include "qwindowscontext.h" \ -#include <QtGui/QMouseEvent> -#include <QtGui/QWindow> -#include <QtGui/QPainter> -#include <QtGui/QCursor> -#include <QtGui/QGuiApplication> - -#include <QtCore/QMimeData> -#include <QtCore/QDebug> +#include <QtGui/qevent.h> +#include <QtGui/qwindow.h> +#include <QtGui/qpainter.h> +#include <QtGui/qcursor.h> +#include <QtGui/qguiapplication.h> + +#include <QtCore/qmimedata.h> +#include <QtCore/qdebug.h> #include <shlobj.h> diff --git a/src/plugins/platforms/windows/qwindowsole.h b/src/plugins/platforms/windows/qwindowsole.h index fc58858f2c..cc971b6464 100644 --- a/src/plugins/platforms/windows/qwindowsole.h +++ b/src/plugins/platforms/windows/qwindowsole.h @@ -43,9 +43,9 @@ #include "qwindowscombase.h" #include <QtCore/qt_windows.h> -#include <QtCore/QMap> -#include <QtCore/QPointer> -#include <QtCore/QVector> +#include <QtCore/qmap.h> +#include <QtCore/qpointer.h> +#include <QtCore/qvector.h> #include <objidl.h> diff --git a/src/plugins/platforms/windows/qwindowsopenglcontext.h b/src/plugins/platforms/windows/qwindowsopenglcontext.h index 85f4f717f5..d162acdde3 100644 --- a/src/plugins/platforms/windows/qwindowsopenglcontext.h +++ b/src/plugins/platforms/windows/qwindowsopenglcontext.h @@ -40,7 +40,7 @@ #ifndef QWINDOWSOPENGLCONTEXT_H #define QWINDOWSOPENGLCONTEXT_H -#include <QtGui/QOpenGLContext> +#include <QtGui/qopenglcontext.h> #include <qpa/qplatformopenglcontext.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/qwindowsopengltester.cpp b/src/plugins/platforms/windows/qwindowsopengltester.cpp index a511cc6164..a90a44c4e1 100644 --- a/src/plugins/platforms/windows/qwindowsopengltester.cpp +++ b/src/plugins/platforms/windows/qwindowsopengltester.cpp @@ -40,15 +40,15 @@ #include "qwindowsopengltester.h" #include "qwindowscontext.h" -#include <QtCore/QVariantMap> -#include <QtCore/QDebug> -#include <QtCore/QTextStream> -#include <QtCore/QCoreApplication> -#include <QtCore/QFile> -#include <QtCore/QFileInfo> -#include <QtCore/QStandardPaths> -#include <QtCore/QLibraryInfo> -#include <QtCore/QHash> +#include <QtCore/qvariant.h> +#include <QtCore/qdebug.h> +#include <QtCore/qtextstream.h> +#include <QtCore/qcoreapplication.h> +#include <QtCore/qfile.h> +#include <QtCore/qfileinfo.h> +#include <QtCore/qstandardpaths.h> +#include <QtCore/qlibraryinfo.h> +#include <QtCore/qhash.h> #ifndef QT_NO_OPENGL #include <private/qopengl_p.h> diff --git a/src/plugins/platforms/windows/qwindowsopengltester.h b/src/plugins/platforms/windows/qwindowsopengltester.h index e3fec59dd5..5ee2508462 100644 --- a/src/plugins/platforms/windows/qwindowsopengltester.h +++ b/src/plugins/platforms/windows/qwindowsopengltester.h @@ -40,8 +40,8 @@ #ifndef QWINDOWSOPENGLTESTER_H #define QWINDOWSOPENGLTESTER_H -#include <QtCore/QByteArray> -#include <QtCore/QFlags> +#include <QtCore/qbytearray.h> +#include <QtCore/qflags.h> #include <QtCore/qversionnumber.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/qwindowsscreen.cpp b/src/plugins/platforms/windows/qwindowsscreen.cpp index d56dc870ea..f2d32bc9b4 100644 --- a/src/plugins/platforms/windows/qwindowsscreen.cpp +++ b/src/plugins/platforms/windows/qwindowsscreen.cpp @@ -45,14 +45,14 @@ #include <QtCore/qt_windows.h> -#include <QtCore/QSettings> -#include <QtGui/QPixmap> -#include <QtGui/QGuiApplication> +#include <QtCore/qsettings.h> +#include <QtGui/qpixmap.h> +#include <QtGui/qguiapplication.h> #include <qpa/qwindowsysteminterface.h> #include <private/qhighdpiscaling_p.h> -#include <QtGui/QScreen> +#include <QtGui/qscreen.h> -#include <QtCore/QDebug> +#include <QtCore/qdebug.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/qwindowsscreen.h b/src/plugins/platforms/windows/qwindowsscreen.h index 5753e605da..824bcb1ad6 100644 --- a/src/plugins/platforms/windows/qwindowsscreen.h +++ b/src/plugins/platforms/windows/qwindowsscreen.h @@ -42,10 +42,10 @@ #include "qtwindowsglobal.h" -#include <QtCore/QList> -#include <QtCore/QVector> -#include <QtCore/QPair> -#include <QtCore/QScopedPointer> +#include <QtCore/qlist.h> +#include <QtCore/qvector.h> +#include <QtCore/qpair.h> +#include <QtCore/qscopedpointer.h> #include <qpa/qplatformscreen.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/qwindowsservices.cpp b/src/plugins/platforms/windows/qwindowsservices.cpp index 48332b35f8..b6ed27464e 100644 --- a/src/plugins/platforms/windows/qwindowsservices.cpp +++ b/src/plugins/platforms/windows/qwindowsservices.cpp @@ -41,9 +41,9 @@ #include "qwindowsservices.h" #include <QtCore/qt_windows.h> -#include <QtCore/QUrl> -#include <QtCore/QDebug> -#include <QtCore/QDir> +#include <QtCore/qurl.h> +#include <QtCore/qdebug.h> +#include <QtCore/qdir.h> #include <shlobj.h> #include <intshcut.h> diff --git a/src/plugins/platforms/windows/qwindowstabletsupport.cpp b/src/plugins/platforms/windows/qwindowstabletsupport.cpp index 280519d39d..dad3e9df9f 100644 --- a/src/plugins/platforms/windows/qwindowstabletsupport.cpp +++ b/src/plugins/platforms/windows/qwindowstabletsupport.cpp @@ -46,13 +46,13 @@ #include <qpa/qwindowsysteminterface.h> -#include <QtGui/QTabletEvent> -#include <QtGui/QScreen> -#include <QtGui/QGuiApplication> -#include <QtGui/QWindow> -#include <QtCore/QDebug> -#include <QtCore/QVarLengthArray> -#include <QtCore/QtMath> +#include <QtGui/qevent.h> +#include <QtGui/qscreen.h> +#include <QtGui/qguiapplication.h> +#include <QtGui/qwindow.h> +#include <QtCore/qdebug.h> +#include <QtCore/qvarlengtharray.h> +#include <QtCore/qmath.h> #include <private/qguiapplication_p.h> #include <QtCore/private/qsystemlibrary_p.h> @@ -135,9 +135,9 @@ QDebug operator<<(QDebug d, const QWindowsTabletDeviceData &t) d.nospace(); d << "TabletDevice id:" << t.uniqueId << " pressure: " << t.minPressure << ".." << t.maxPressure << " tan pressure: " << t.minTanPressure << ".." - << t.maxTanPressure << " area:" << t.minX << t.minY <<t.minZ - << ".." << t.maxX << t.maxY << t.maxZ << " device " << t.currentDevice - << " pointer " << t.currentPointerType; + << t.maxTanPressure << " area: (" << t.minX << ',' << t.minY << ',' << t.minZ + << ")..(" << t.maxX << ',' << t.maxY << ',' << t.maxZ << ") device " + << t.currentDevice << " pointer " << t.currentPointerType; return d; } @@ -211,9 +211,6 @@ bool QWindowsWinTab32DLL::init() QWindowsTabletSupport::QWindowsTabletSupport(HWND window, HCTX context) : m_window(window) , m_context(context) - , m_absoluteRange(20) - , m_tiltSupport(false) - , m_currentDevice(-1) { AXIS orientation[3]; // Some tablets don't support tilt, check if it is possible, @@ -230,13 +227,13 @@ QWindowsTabletSupport::~QWindowsTabletSupport() QWindowsTabletSupport *QWindowsTabletSupport::create() { if (!m_winTab32DLL.init()) - return 0; + return nullptr; const HWND window = QWindowsContext::instance()->createDummyWindow(QStringLiteral("TabletDummyWindow"), L"TabletDummyWindow", qWindowsTabletSupportWndProc); if (!window) { qCWarning(lcQpaTablet) << __FUNCTION__ << "Unable to create window for tablet."; - return 0; + return nullptr; } LOGCONTEXT lcMine; // build our context from the default context @@ -255,7 +252,7 @@ QWindowsTabletSupport *QWindowsTabletSupport::create() if (!context) { qCDebug(lcQpaTablet) << __FUNCTION__ << "Unable to open tablet."; DestroyWindow(window); - return 0; + return nullptr; } // Set the size of the Packet Queue to the correct size @@ -266,7 +263,7 @@ QWindowsTabletSupport *QWindowsTabletSupport::create() qWarning("Unable to set queue size on tablet. The tablet will not work."); QWindowsTabletSupport::m_winTab32DLL.wTClose(context); DestroyWindow(window); - return 0; + return nullptr; } // cannot restore old size } // cannot set } // mismatch @@ -285,7 +282,7 @@ unsigned QWindowsTabletSupport::options() const QString QWindowsTabletSupport::description() const { - const unsigned size = m_winTab32DLL.wTInfo(WTI_INTERFACE, IFC_WINTABID, 0); + const unsigned size = m_winTab32DLL.wTInfo(WTI_INTERFACE, IFC_WINTABID, nullptr); if (!size) return QString(); QVarLengthArray<TCHAR> winTabId(size + 1); diff --git a/src/plugins/platforms/windows/qwindowstabletsupport.h b/src/plugins/platforms/windows/qwindowstabletsupport.h index 340818c3f7..d98dbd4de7 100644 --- a/src/plugins/platforms/windows/qwindowstabletsupport.h +++ b/src/plugins/platforms/windows/qwindowstabletsupport.h @@ -43,8 +43,8 @@ #include "qtwindowsglobal.h" #include <QtGui/qtguiglobal.h> -#include <QtCore/QVector> -#include <QtCore/QPointF> +#include <QtCore/qvector.h> +#include <QtCore/qpoint.h> #include <wintab.h> @@ -83,22 +83,23 @@ struct QWindowsWinTab32DLL struct QWindowsTabletDeviceData { - QWindowsTabletDeviceData() : minPressure(0), maxPressure(0), minTanPressure(0), - maxTanPressure(0), minX(0), maxX(0), minY(0), maxY(0), minZ(0), maxZ(0), - uniqueId(0), currentDevice(0), currentPointerType(0) {} - QPointF scaleCoordinates(int coordX, int coordY,const QRect &targetArea) const; qreal scalePressure(qreal p) const { return p / qreal(maxPressure - minPressure); } qreal scaleTangentialPressure(qreal p) const { return p / qreal(maxTanPressure - minTanPressure); } - int minPressure; - int maxPressure; - int minTanPressure; - int maxTanPressure; - int minX, maxX, minY, maxY, minZ, maxZ; - qint64 uniqueId; - int currentDevice; - int currentPointerType; + int minPressure = 0; + int maxPressure = 0; + int minTanPressure = 0; + int maxTanPressure = 0; + int minX = 0; + int maxX = 0; + int minY = 0; + int maxY = 0; + int minZ = 0; + int maxZ = 0; + qint64 uniqueId = 0; + int currentDevice = 0; + int currentPointerType = 0; }; #ifndef QT_NO_DEBUG_STREAM @@ -145,10 +146,10 @@ private: static QWindowsWinTab32DLL m_winTab32DLL; const HWND m_window; const HCTX m_context; - int m_absoluteRange; - bool m_tiltSupport; + int m_absoluteRange = 20; + bool m_tiltSupport = false; QVector<QWindowsTabletDeviceData> m_devices; - int m_currentDevice; + int m_currentDevice = -1; QPointF m_oldGlobalPosF; Mode m_mode = PenMode; State m_state = PenUp; diff --git a/src/plugins/platforms/windows/qwindowstheme.cpp b/src/plugins/platforms/windows/qwindowstheme.cpp index 651c661d6b..9d2d4c28e0 100644 --- a/src/plugins/platforms/windows/qwindowstheme.cpp +++ b/src/plugins/platforms/windows/qwindowstheme.cpp @@ -59,20 +59,20 @@ #endif #include <shellapi.h> -#include <QtCore/QVariant> -#include <QtCore/QCoreApplication> -#include <QtCore/QDebug> -#include <QtCore/QTextStream> -#include <QtCore/QSysInfo> -#include <QtCore/QCache> -#include <QtCore/QThread> -#include <QtCore/QMutex> -#include <QtCore/QWaitCondition> -#include <QtGui/QColor> -#include <QtGui/QPalette> -#include <QtGui/QGuiApplication> -#include <QtGui/QPainter> -#include <QtGui/QPixmapCache> +#include <QtCore/qvariant.h> +#include <QtCore/qcoreapplication.h> +#include <QtCore/qdebug.h> +#include <QtCore/qtextstream.h> +#include <QtCore/qsysinfo.h> +#include <QtCore/qcache.h> +#include <QtCore/qthread.h> +#include <QtCore/qmutex.h> +#include <QtCore/qwaitcondition.h> +#include <QtGui/qcolor.h> +#include <QtGui/qpalette.h> +#include <QtGui/qguiapplication.h> +#include <QtGui/qpainter.h> +#include <QtGui/qpixmapcache.h> #include <qpa/qwindowsysteminterface.h> #include <QtThemeSupport/private/qabstractfileiconengine_p.h> #include <QtFontDatabaseSupport/private/qwindowsfontdatabase_p.h> diff --git a/src/plugins/platforms/windows/qwindowstheme.h b/src/plugins/platforms/windows/qwindowstheme.h index 237e8158fa..f6e60a268b 100644 --- a/src/plugins/platforms/windows/qwindowstheme.h +++ b/src/plugins/platforms/windows/qwindowstheme.h @@ -42,8 +42,8 @@ #include <qpa/qplatformtheme.h> -#include <QtCore/QSharedPointer> -#include <QtCore/QVariant> +#include <QtCore/qsharedpointer.h> +#include <QtCore/qvariant.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/qwindowsthreadpoolrunner.h b/src/plugins/platforms/windows/qwindowsthreadpoolrunner.h index 5601cc9305..99705927af 100644 --- a/src/plugins/platforms/windows/qwindowsthreadpoolrunner.h +++ b/src/plugins/platforms/windows/qwindowsthreadpoolrunner.h @@ -40,10 +40,10 @@ #ifndef QWINDOWSTHREADPOOLRUNNER_H #define QWINDOWSTHREADPOOLRUNNER_H -#include <QtCore/QMutex> -#include <QtCore/QRunnable> -#include <QtCore/QThreadPool> -#include <QtCore/QWaitCondition> +#include <QtCore/qmutex.h> +#include <QtCore/qrunnable.h> +#include <QtCore/qthreadpool.h> +#include <QtCore/qwaitcondition.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/qwindowsvulkaninstance.cpp b/src/plugins/platforms/windows/qwindowsvulkaninstance.cpp index d81ee8ba29..5ffb4375ce 100644 --- a/src/plugins/platforms/windows/qwindowsvulkaninstance.cpp +++ b/src/plugins/platforms/windows/qwindowsvulkaninstance.cpp @@ -44,20 +44,9 @@ QT_BEGIN_NAMESPACE QWindowsVulkanInstance::QWindowsVulkanInstance(QVulkanInstance *instance) : m_instance(instance), m_getPhysDevPresSupport(nullptr), - m_createSurface(nullptr), - m_destroySurface(nullptr) + m_createSurface(nullptr) { - if (qEnvironmentVariableIsSet("QT_VULKAN_LIB")) - m_lib.setFileName(QString::fromUtf8(qgetenv("QT_VULKAN_LIB"))); - else - m_lib.setFileName(QStringLiteral("vulkan-1")); - - if (!m_lib.load()) { - qWarning("Failed to load %s: %s", qPrintable(m_lib.fileName()), qPrintable(m_lib.errorString())); - return; - } - - init(&m_lib); + loadVulkanLibrary(QStringLiteral("vulkan-1")); } void QWindowsVulkanInstance::createOrAdoptInstance() @@ -106,14 +95,6 @@ VkSurfaceKHR QWindowsVulkanInstance::createSurface(HWND win) qWarning("Failed to find vkCreateWin32SurfaceKHR"); return surface; } - if (!m_destroySurface) { - m_destroySurface = reinterpret_cast<PFN_vkDestroySurfaceKHR>( - m_vkGetInstanceProcAddr(m_vkInst, "vkDestroySurfaceKHR")); - } - if (!m_destroySurface) { - qWarning("Failed to find vkDestroySurfaceKHR"); - return surface; - } VkWin32SurfaceCreateInfoKHR surfaceInfo; memset(&surfaceInfo, 0, sizeof(surfaceInfo)); @@ -127,10 +108,4 @@ VkSurfaceKHR QWindowsVulkanInstance::createSurface(HWND win) return surface; } -void QWindowsVulkanInstance::destroySurface(VkSurfaceKHR surface) -{ - if (m_destroySurface && surface) - m_destroySurface(m_vkInst, surface, nullptr); -} - QT_END_NAMESPACE diff --git a/src/plugins/platforms/windows/qwindowsvulkaninstance.h b/src/plugins/platforms/windows/qwindowsvulkaninstance.h index ca60ab7627..40442c63d0 100644 --- a/src/plugins/platforms/windows/qwindowsvulkaninstance.h +++ b/src/plugins/platforms/windows/qwindowsvulkaninstance.h @@ -47,7 +47,7 @@ #define VK_USE_PLATFORM_WIN32_KHR #include <QtVulkanSupport/private/qbasicvulkanplatforminstance_p.h> -#include <QLibrary> +#include <QtCore/qlibrary.h> QT_BEGIN_NAMESPACE @@ -61,14 +61,11 @@ public: bool supportsPresent(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, QWindow *window) override; VkSurfaceKHR createSurface(HWND win); - void destroySurface(VkSurfaceKHR surface); private: QVulkanInstance *m_instance; - QLibrary m_lib; PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR m_getPhysDevPresSupport; PFN_vkCreateWin32SurfaceKHR m_createSurface; - PFN_vkDestroySurfaceKHR m_destroySurface; }; QT_END_NAMESPACE diff --git a/src/plugins/platforms/windows/qwindowswindow.cpp b/src/plugins/platforms/windows/qwindowswindow.cpp index f8d6ae222e..5951821462 100644 --- a/src/plugins/platforms/windows/qwindowswindow.cpp +++ b/src/plugins/platforms/windows/qwindowswindow.cpp @@ -62,19 +62,20 @@ # include "qwindowscursor.h" #endif -#include <QtGui/QGuiApplication> -#include <QtGui/QScreen> -#include <QtGui/QWindow> -#include <QtGui/QRegion> -#include <QtGui/QOpenGLContext> +#include <QtGui/qguiapplication.h> +#include <QtGui/qscreen.h> +#include <QtGui/qwindow.h> +#include <QtGui/qregion.h> +#include <QtGui/qopenglcontext.h> #include <private/qsystemlibrary_p.h> #include <private/qwindow_p.h> // QWINDOWSIZE_MAX #include <private/qguiapplication_p.h> #include <private/qhighdpiscaling_p.h> #include <qpa/qwindowsysteminterface.h> -#include <QtCore/QDebug> -#include <QtCore/QLibraryInfo> +#include <QtCore/qdebug.h> +#include <QtCore/qlibraryinfo.h> +#include <QtCore/qoperatingsystemversion.h> #include <dwmapi.h> @@ -422,6 +423,31 @@ static inline void updateGLWindowSettings(const QWindow *w, HWND hwnd, Qt::Windo } /*! + Calculates the dimensions of the invisible borders within the + window frames in Windows 10, using an empirical expression that + reproduces the measured values for standard DPI settings. +*/ + +static QMargins invisibleMargins(QPoint screenPoint) +{ + if (QOperatingSystemVersion::current() >= QOperatingSystemVersion::Windows10) { + POINT pt = {screenPoint.x(), screenPoint.y()}; + if (HMONITOR hMonitor = MonitorFromPoint(pt, MONITOR_DEFAULTTONULL)) { + if (QWindowsContext::shcoredll.isValid()) { + UINT dpiX; + UINT dpiY; + if (SUCCEEDED(QWindowsContext::shcoredll.getDpiForMonitor(hMonitor, 0, &dpiX, &dpiY))) { + const qreal sc = (dpiX - 96) / 96.0; + const int gap = 7 + qRound(5*sc) - int(sc); + return QMargins(gap, 0, gap, gap); + } + } + } + } + return QMargins(); +} + +/*! \class WindowCreationData \brief Window creation code. @@ -651,16 +677,20 @@ QWindowsWindowData const QWindowCreationContextPtr context(new QWindowCreationContext(w, data.geometry, rect, data.customMargins, style, exStyle)); QWindowsContext::instance()->setWindowCreationContext(context); + QMargins invMargins = topLevel && !(result.flags & Qt::FramelessWindowHint) && QWindowsGeometryHint::positionIncludesFrame(w) + ? invisibleMargins(QPoint(context->frameX, context->frameY)) : QMargins(); + qCDebug(lcQpaWindows).nospace() << "CreateWindowEx: " << w << " class=" << windowClassName << " title=" << title << '\n' << *this << "\nrequested: " << rect << ": " << context->frameWidth << 'x' << context->frameHeight << '+' << context->frameX << '+' << context->frameY - << " custom margins: " << context->customMargins; + << " custom margins: " << context->customMargins + << " invisible margins: " << invMargins; result.hwnd = CreateWindowEx(exStyle, classNameUtf16, titleUtf16, style, - context->frameX, context->frameY, + context->frameX - invMargins.left(), context->frameY - invMargins.top(), context->frameWidth, context->frameHeight, parentHandle, NULL, appinst, NULL); qCDebug(lcQpaWindows).nospace() @@ -673,7 +703,7 @@ QWindowsWindowData } result.geometry = context->obtainedGeometry; - result.frame = context->margins; + result.fullFrameMargins = context->margins; result.embedded = embedded; result.customMargins = context->customMargins; @@ -887,7 +917,7 @@ QRect QWindowsBaseWindow::frameGeometry_sys() const QRect QWindowsBaseWindow::geometry_sys() const { - return frameGeometry_sys().marginsRemoved(frameMargins()); + return frameGeometry_sys().marginsRemoved(fullFrameMargins()); } QMargins QWindowsBaseWindow::frameMargins_sys() const @@ -1560,7 +1590,7 @@ QRect QWindowsWindow::normalGeometry() const const bool fakeFullScreen = m_savedFrameGeometry.isValid() && (window()->windowStates() & Qt::WindowFullScreen); const QRect frame = fakeFullScreen ? m_savedFrameGeometry : normalFrameGeometry(m_data.hwnd); - const QMargins margins = fakeFullScreen ? QWindowsGeometryHint::frame(m_savedStyle, 0) : frameMargins(); + const QMargins margins = fakeFullScreen ? QWindowsGeometryHint::frame(m_savedStyle, 0) : fullFrameMargins(); return frame.isValid() ? frame.marginsRemoved(margins) : frame; } @@ -1592,8 +1622,8 @@ void QWindowsWindow::setGeometry(const QRect &rectIn) window()->metaObject()->className(), qPrintable(window()->objectName()), m_data.geometry.width(), m_data.geometry.height(), m_data.geometry.x(), m_data.geometry.y(), - m_data.frame.left(), m_data.frame.top(), - m_data.frame.right(), m_data.frame.bottom(), + m_data.fullFrameMargins.left(), m_data.fullFrameMargins.top(), + m_data.fullFrameMargins.right(), m_data.fullFrameMargins.bottom(), m_data.customMargins.left(), m_data.customMargins.top(), m_data.customMargins.right(), m_data.customMargins.bottom(), window()->minimumWidth(), window()->minimumHeight(), @@ -1685,7 +1715,7 @@ void QWindowsWindow::handleGeometryChange() void QWindowsBaseWindow::setGeometry_sys(const QRect &rect) const { - const QMargins margins = frameMargins(); + const QMargins margins = fullFrameMargins(); const QRect frameGeometry = rect + margins; qCDebug(lcQpaWindows) << '>' << __FUNCTION__ << window() @@ -2048,7 +2078,7 @@ void QWindowsWindow::setExStyle(unsigned s) const SetWindowLongPtr(m_data.hwnd, GWL_EXSTYLE, s); } -void QWindowsWindow::windowEvent(QEvent *event) +bool QWindowsWindow::windowEvent(QEvent *event) { switch (event->type()) { case QEvent::WindowBlocked: // Blocked by another modal window. @@ -2064,6 +2094,8 @@ void QWindowsWindow::windowEvent(QEvent *event) default: break; } + + return QPlatformWindow::windowEvent(event); } void QWindowsWindow::propagateSizeHints() @@ -2104,21 +2136,29 @@ bool QWindowsWindow::handleGeometryChangingMessage(MSG *message, const QWindow * bool QWindowsWindow::handleGeometryChanging(MSG *message) const { - const QMargins margins = window()->isTopLevel() ? frameMargins() : QMargins(); + const QMargins margins = window()->isTopLevel() ? fullFrameMargins() : QMargins(); return QWindowsWindow::handleGeometryChangingMessage(message, window(), margins); } -void QWindowsWindow::setFrameMargins(const QMargins &newMargins) +void QWindowsWindow::setFullFrameMargins(const QMargins &newMargins) { - if (m_data.frame != newMargins) { - qCDebug(lcQpaWindows) << __FUNCTION__ << window() << m_data.frame << "->" << newMargins; - m_data.frame = newMargins; + if (m_data.fullFrameMargins != newMargins) { + qCDebug(lcQpaWindows) << __FUNCTION__ << window() << m_data.fullFrameMargins << "->" << newMargins; + m_data.fullFrameMargins = newMargins; } } QMargins QWindowsWindow::frameMargins() const { - return m_data.frame; + QMargins result = fullFrameMargins(); + if (isTopLevel() && !(m_data.flags & Qt::FramelessWindowHint)) + result -= invisibleMargins(geometry().topLeft()); + return result; +} + +QMargins QWindowsWindow::fullFrameMargins() const +{ + return m_data.fullFrameMargins; } void QWindowsWindow::setOpacity(qreal level) @@ -2172,7 +2212,7 @@ void QWindowsWindow::setMask(const QRegion ®ion) // Mask is in client area coordinates, so offset it in case we have a frame if (window()->isTopLevel()) { - const QMargins margins = frameMargins(); + const QMargins margins = fullFrameMargins(); OffsetRgn(winRegion, margins.left(), margins.top()); } diff --git a/src/plugins/platforms/windows/qwindowswindow.h b/src/plugins/platforms/windows/qwindowswindow.h index fe2518e329..02e986fd90 100644 --- a/src/plugins/platforms/windows/qwindowswindow.h +++ b/src/plugins/platforms/windows/qwindowswindow.h @@ -41,7 +41,7 @@ #define QWINDOWSWINDOW_H #include <QtCore/qt_windows.h> -#include <QtCore/QPointer> +#include <QtCore/qpointer.h> #include "qwindowscursor.h" #include <qpa/qplatformwindow.h> @@ -108,8 +108,8 @@ struct QWindowsWindowData { Qt::WindowFlags flags; QRect geometry; - QMargins frame; // Do not use directly for windows, see FrameDirty. - QMargins customMargins; // User-defined, additional frame for NCCALCSIZE + QMargins fullFrameMargins; // Do not use directly for windows, see FrameDirty. + QMargins customMargins; // User-defined, additional frame for NCCALCSIZE HWND hwnd = 0; bool embedded = false; @@ -125,9 +125,10 @@ public: WId winId() const override { return WId(handle()); } QRect geometry() const override { return geometry_sys(); } - QMargins frameMargins() const override { return frameMargins_sys(); } + QMargins frameMargins() const override { return fullFrameMargins(); } QPoint mapToGlobal(const QPoint &pos) const override; QPoint mapFromGlobal(const QPoint &pos) const override; + virtual QMargins fullFrameMargins() const { return frameMargins_sys(); } using QPlatformWindow::screenForGeometry; @@ -252,13 +253,14 @@ public: void raise() override { raise_sys(); } void lower() override { lower_sys(); } - void windowEvent(QEvent *event) override; + bool windowEvent(QEvent *event) override; void propagateSizeHints() override; static bool handleGeometryChangingMessage(MSG *message, const QWindow *qWindow, const QMargins &marginsDp); bool handleGeometryChanging(MSG *message) const; QMargins frameMargins() const override; - void setFrameMargins(const QMargins &newMargins); + QMargins fullFrameMargins() const override; + void setFullFrameMargins(const QMargins &newMargins); void setOpacity(qreal level) override; void setMask(const QRegion ®ion) override; diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiaaccessibility.cpp b/src/plugins/platforms/windows/uiautomation/qwindowsuiaaccessibility.cpp index 907883bf5b..ee8e0b46cd 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiaaccessibility.cpp +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiaaccessibility.cpp @@ -37,16 +37,16 @@ ** ****************************************************************************/ -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiaaccessibility.h" #include "qwindowsuiamainprovider.h" #include "qwindowsuiautils.h" -#include <QtGui/QAccessible> -#include <QtGui/QWindow> -#include <QtGui/QGuiApplication> +#include <QtGui/qaccessible.h> +#include <QtGui/qwindow.h> +#include <QtGui/qguiapplication.h> #include <QtGui/private/qguiapplication_p.h> #include <QtCore/qt_windows.h> #include <qpa/qplatformintegration.h> diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiaaccessibility.h b/src/plugins/platforms/windows/uiautomation/qwindowsuiaaccessibility.h index bbb81d596b..6d87ceb775 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiaaccessibility.h +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiaaccessibility.h @@ -40,7 +40,7 @@ #ifndef QWINDOWSUIAACCESSIBILITY_H #define QWINDOWSUIAACCESSIBILITY_H -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowscontext.h" diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiabaseprovider.cpp b/src/plugins/platforms/windows/uiautomation/qwindowsuiabaseprovider.cpp index 1e1fc49c0f..a44f52856a 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiabaseprovider.cpp +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiabaseprovider.cpp @@ -37,17 +37,16 @@ ** ****************************************************************************/ -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiabaseprovider.h" #include "qwindowsuiautils.h" #include "qwindowscontext.h" -#include <QtGui/QAccessible> -#include <QtGui/QAccessibleInterface> -#include <QtCore/QDebug> -#include <QtCore/QString> +#include <QtGui/qaccessible.h> +#include <QtCore/qdebug.h> +#include <QtCore/qstring.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiabaseprovider.h b/src/plugins/platforms/windows/uiautomation/qwindowsuiabaseprovider.h index 3ae403e8c5..1c7c089608 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiabaseprovider.h +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiabaseprovider.h @@ -40,12 +40,11 @@ #ifndef QWINDOWSUIABASEPROVIDER_H #define QWINDOWSUIABASEPROVIDER_H -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY -#include <QtGui/QAccessible> -#include <QtGui/QAccessibleInterface> -#include <QtCore/QPointer> +#include <QtGui/qaccessible.h> +#include <QtCore/qpointer.h> #include <qwindowscombase.h> #include <QtWindowsUIAutomationSupport/private/qwindowsuiawrapper_p.h> diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiagriditemprovider.cpp b/src/plugins/platforms/windows/uiautomation/qwindowsuiagriditemprovider.cpp index e0502c00f3..9695ebc025 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiagriditemprovider.cpp +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiagriditemprovider.cpp @@ -37,7 +37,7 @@ ** ****************************************************************************/ -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiagriditemprovider.h" @@ -45,10 +45,9 @@ #include "qwindowsuiautils.h" #include "qwindowscontext.h" -#include <QtGui/QAccessible> -#include <QtGui/QAccessibleInterface> -#include <QtCore/QDebug> -#include <QtCore/QString> +#include <QtGui/qaccessible.h> +#include <QtCore/qdebug.h> +#include <QtCore/qstring.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiagriditemprovider.h b/src/plugins/platforms/windows/uiautomation/qwindowsuiagriditemprovider.h index a93b50ef97..72b7be6bdd 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiagriditemprovider.h +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiagriditemprovider.h @@ -40,7 +40,7 @@ #ifndef QWINDOWSUIAGRIDITEMPROVIDER_H #define QWINDOWSUIAGRIDITEMPROVIDER_H -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiabaseprovider.h" diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiagridprovider.cpp b/src/plugins/platforms/windows/uiautomation/qwindowsuiagridprovider.cpp index 65c2df703b..2ba98cf643 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiagridprovider.cpp +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiagridprovider.cpp @@ -37,7 +37,7 @@ ** ****************************************************************************/ -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiagridprovider.h" @@ -45,10 +45,9 @@ #include "qwindowsuiautils.h" #include "qwindowscontext.h" -#include <QtGui/QAccessible> -#include <QtGui/QAccessibleInterface> -#include <QtCore/QDebug> -#include <QtCore/QString> +#include <QtGui/qaccessible.h> +#include <QtCore/qdebug.h> +#include <QtCore/qstring.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiagridprovider.h b/src/plugins/platforms/windows/uiautomation/qwindowsuiagridprovider.h index 15521f98b3..c063e97516 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiagridprovider.h +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiagridprovider.h @@ -40,7 +40,7 @@ #ifndef QWINDOWSUIAGRIDPROVIDER_H #define QWINDOWSUIAGRIDPROVIDER_H -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiabaseprovider.h" diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiainvokeprovider.cpp b/src/plugins/platforms/windows/uiautomation/qwindowsuiainvokeprovider.cpp index 2af883c4f6..4f226e501a 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiainvokeprovider.cpp +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiainvokeprovider.cpp @@ -37,17 +37,16 @@ ** ****************************************************************************/ -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiainvokeprovider.h" #include "qwindowsuiautils.h" #include "qwindowscontext.h" -#include <QtGui/QAccessible> -#include <QtGui/QAccessibleInterface> -#include <QtCore/QDebug> -#include <QtCore/QString> +#include <QtGui/qaccessible.h> +#include <QtCore/qdebug.h> +#include <QtCore/qstring.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiainvokeprovider.h b/src/plugins/platforms/windows/uiautomation/qwindowsuiainvokeprovider.h index 2b8a646983..fef2513175 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiainvokeprovider.h +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiainvokeprovider.h @@ -40,7 +40,7 @@ #ifndef QWINDOWSUIAINVOKEPROVIDER_H #define QWINDOWSUIAINVOKEPROVIDER_H -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiabaseprovider.h" diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiamainprovider.cpp b/src/plugins/platforms/windows/uiautomation/qwindowsuiamainprovider.cpp index 46f73f81a0..4bcc06cddd 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiamainprovider.cpp +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiamainprovider.cpp @@ -37,7 +37,7 @@ ** ****************************************************************************/ -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiamainprovider.h" @@ -57,10 +57,10 @@ #include "qwindowsuiautils.h" #include "qwindowsuiaprovidercache.h" -#include <QtCore/QDebug> -#include <QtGui/QAccessible> -#include <QtGui/QGuiApplication> -#include <QtGui/QWindow> +#include <QtCore/qdebug.h> +#include <QtGui/qaccessible.h> +#include <QtGui/qguiapplication.h> +#include <QtGui/qwindow.h> #if !defined(Q_CC_BOR) && !defined (Q_CC_GNU) #include <comdef.h> diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiamainprovider.h b/src/plugins/platforms/windows/uiautomation/qwindowsuiamainprovider.h index 893cbf7f8a..11d11e33aa 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiamainprovider.h +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiamainprovider.h @@ -40,15 +40,15 @@ #ifndef QWINDOWSUIAMAINPROVIDER_H #define QWINDOWSUIAMAINPROVIDER_H -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiabaseprovider.h" -#include <QtCore/QPointer> -#include <QtCore/QSharedPointer> +#include <QtCore/qpointer.h> +#include <QtCore/qsharedpointer.h> #include <QtCore/qt_windows.h> -#include <QtGui/QAccessible> +#include <QtGui/qaccessible.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiaprovidercache.cpp b/src/plugins/platforms/windows/uiautomation/qwindowsuiaprovidercache.cpp index 9f0a1e126f..b2ef3648d0 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiaprovidercache.cpp +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiaprovidercache.cpp @@ -37,14 +37,14 @@ ** ****************************************************************************/ -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiaprovidercache.h" #include "qwindowsuiautils.h" #include "qwindowscontext.h" -#include <QtCore/QDebug> +#include <QtCore/qdebug.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiaprovidercache.h b/src/plugins/platforms/windows/uiautomation/qwindowsuiaprovidercache.h index 7ad30ac39c..4130a218d5 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiaprovidercache.h +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiaprovidercache.h @@ -40,14 +40,13 @@ #ifndef QWINDOWSUIAPROVIDERCACHE_H #define QWINDOWSUIAPROVIDERCACHE_H -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiabaseprovider.h" -#include <QtCore/QHash> -#include <QtGui/QAccessible> -#include <QtGui/QAccessibleInterface> +#include <QtCore/qhash.h> +#include <QtGui/qaccessible.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiarangevalueprovider.cpp b/src/plugins/platforms/windows/uiautomation/qwindowsuiarangevalueprovider.cpp index 0cd09c3f0a..fc797e092b 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiarangevalueprovider.cpp +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiarangevalueprovider.cpp @@ -37,17 +37,16 @@ ** ****************************************************************************/ -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiarangevalueprovider.h" #include "qwindowsuiautils.h" #include "qwindowscontext.h" -#include <QtGui/QAccessible> -#include <QtGui/QAccessibleInterface> -#include <QtCore/QDebug> -#include <QtCore/QString> +#include <QtGui/qaccessible.h> +#include <QtCore/qdebug.h> +#include <QtCore/qstring.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiarangevalueprovider.h b/src/plugins/platforms/windows/uiautomation/qwindowsuiarangevalueprovider.h index f742ef99c2..c528fa79fa 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiarangevalueprovider.h +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiarangevalueprovider.h @@ -40,7 +40,7 @@ #ifndef QWINDOWSUIARANGEVALUEPROVIDER_H #define QWINDOWSUIARANGEVALUEPROVIDER_H -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiabaseprovider.h" diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiaselectionitemprovider.cpp b/src/plugins/platforms/windows/uiautomation/qwindowsuiaselectionitemprovider.cpp index 45216a6d1c..ceac374471 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiaselectionitemprovider.cpp +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiaselectionitemprovider.cpp @@ -37,7 +37,7 @@ ** ****************************************************************************/ -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiaselectionitemprovider.h" @@ -45,10 +45,9 @@ #include "qwindowsuiautils.h" #include "qwindowscontext.h" -#include <QtGui/QAccessible> -#include <QtGui/QAccessibleInterface> -#include <QtCore/QDebug> -#include <QtCore/QString> +#include <QtGui/qaccessible.h> +#include <QtCore/qdebug.h> +#include <QtCore/qstring.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiaselectionitemprovider.h b/src/plugins/platforms/windows/uiautomation/qwindowsuiaselectionitemprovider.h index 6a9b5b1e4b..fa4d83eaeb 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiaselectionitemprovider.h +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiaselectionitemprovider.h @@ -40,7 +40,7 @@ #ifndef QWINDOWSUIASELECTIONITEMPROVIDER_H #define QWINDOWSUIASELECTIONITEMPROVIDER_H -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiabaseprovider.h" diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiaselectionprovider.cpp b/src/plugins/platforms/windows/uiautomation/qwindowsuiaselectionprovider.cpp index 1c06503bfc..0ce78b89dd 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiaselectionprovider.cpp +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiaselectionprovider.cpp @@ -37,7 +37,7 @@ ** ****************************************************************************/ -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiaselectionprovider.h" @@ -45,11 +45,10 @@ #include "qwindowsuiautils.h" #include "qwindowscontext.h" -#include <QtGui/QAccessible> -#include <QtGui/QAccessibleInterface> -#include <QtCore/QDebug> -#include <QtCore/QString> -#include <QList> +#include <QtGui/qaccessible.h> +#include <QtCore/qdebug.h> +#include <QtCore/qstring.h> +#include <QtCore/qlist.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiaselectionprovider.h b/src/plugins/platforms/windows/uiautomation/qwindowsuiaselectionprovider.h index 5a07a82ac8..893fcf3346 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiaselectionprovider.h +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiaselectionprovider.h @@ -40,7 +40,7 @@ #ifndef QWINDOWSUIASELECTIONPROVIDER_H #define QWINDOWSUIASELECTIONPROVIDER_H -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiabaseprovider.h" diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiatableitemprovider.cpp b/src/plugins/platforms/windows/uiautomation/qwindowsuiatableitemprovider.cpp index 3ea29fc86c..d35890a8a0 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiatableitemprovider.cpp +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiatableitemprovider.cpp @@ -37,7 +37,7 @@ ** ****************************************************************************/ -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiatableitemprovider.h" @@ -45,10 +45,9 @@ #include "qwindowsuiautils.h" #include "qwindowscontext.h" -#include <QtGui/QAccessible> -#include <QtGui/QAccessibleInterface> -#include <QtCore/QDebug> -#include <QtCore/QString> +#include <QtGui/qaccessible.h> +#include <QtCore/qdebug.h> +#include <QtCore/qstring.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiatableitemprovider.h b/src/plugins/platforms/windows/uiautomation/qwindowsuiatableitemprovider.h index 277884c980..e19e46ed29 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiatableitemprovider.h +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiatableitemprovider.h @@ -40,7 +40,7 @@ #ifndef QWINDOWSUIATABLEITEMPROVIDER_H #define QWINDOWSUIATABLEITEMPROVIDER_H -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiabaseprovider.h" diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiatableprovider.cpp b/src/plugins/platforms/windows/uiautomation/qwindowsuiatableprovider.cpp index f79a24536b..4c9cf0fc35 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiatableprovider.cpp +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiatableprovider.cpp @@ -37,7 +37,7 @@ ** ****************************************************************************/ -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiatableprovider.h" @@ -45,10 +45,9 @@ #include "qwindowsuiautils.h" #include "qwindowscontext.h" -#include <QtGui/QAccessible> -#include <QtGui/QAccessibleInterface> -#include <QtCore/QDebug> -#include <QtCore/QString> +#include <QtGui/qaccessible.h> +#include <QtCore/qdebug.h> +#include <QtCore/qstring.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiatableprovider.h b/src/plugins/platforms/windows/uiautomation/qwindowsuiatableprovider.h index 8cd0acda03..64549918e0 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiatableprovider.h +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiatableprovider.h @@ -40,7 +40,7 @@ #ifndef QWINDOWSUIATABLEPROVIDER_H #define QWINDOWSUIATABLEPROVIDER_H -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiabaseprovider.h" diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiatextprovider.cpp b/src/plugins/platforms/windows/uiautomation/qwindowsuiatextprovider.cpp index e1622933af..9d03cd1dad 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiatextprovider.cpp +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiatextprovider.cpp @@ -37,17 +37,16 @@ ** ****************************************************************************/ -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiatextprovider.h" #include "qwindowsuiautils.h" #include "qwindowscontext.h" -#include <QtGui/QAccessible> -#include <QtGui/QAccessibleInterface> -#include <QtCore/QDebug> -#include <QtCore/QString> +#include <QtGui/qaccessible.h> +#include <QtCore/qdebug.h> +#include <QtCore/qstring.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiatextprovider.h b/src/plugins/platforms/windows/uiautomation/qwindowsuiatextprovider.h index a6d10027fa..7bf6b5cfcf 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiatextprovider.h +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiatextprovider.h @@ -40,7 +40,7 @@ #ifndef QWINDOWSUIATEXTPROVIDER_H #define QWINDOWSUIATEXTPROVIDER_H -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiabaseprovider.h" diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiatextrangeprovider.cpp b/src/plugins/platforms/windows/uiautomation/qwindowsuiatextrangeprovider.cpp index dae7cbdd5f..3934fe37b9 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiatextrangeprovider.cpp +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiatextrangeprovider.cpp @@ -37,7 +37,7 @@ ** ****************************************************************************/ -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiatextrangeprovider.h" @@ -45,10 +45,9 @@ #include "qwindowsuiautils.h" #include "qwindowscontext.h" -#include <QtGui/QAccessible> -#include <QtGui/QAccessibleInterface> -#include <QtCore/QDebug> -#include <QtCore/QString> +#include <QtGui/qaccessible.h> +#include <QtCore/qdebug.h> +#include <QtCore/qstring.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiatextrangeprovider.h b/src/plugins/platforms/windows/uiautomation/qwindowsuiatextrangeprovider.h index 6fe6502c41..6c2b59399f 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiatextrangeprovider.h +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiatextrangeprovider.h @@ -40,7 +40,7 @@ #ifndef QWINDOWSUIATEXTRANGEPROVIDER_H #define QWINDOWSUIATEXTRANGEPROVIDER_H -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiabaseprovider.h" diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiatoggleprovider.cpp b/src/plugins/platforms/windows/uiautomation/qwindowsuiatoggleprovider.cpp index 01cdfd7e91..14a2f419a8 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiatoggleprovider.cpp +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiatoggleprovider.cpp @@ -37,17 +37,16 @@ ** ****************************************************************************/ -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiatoggleprovider.h" #include "qwindowsuiautils.h" #include "qwindowscontext.h" -#include <QtGui/QAccessible> -#include <QtGui/QAccessibleInterface> -#include <QtCore/QDebug> -#include <QtCore/QString> +#include <QtGui/qaccessible.h> +#include <QtCore/qdebug.h> +#include <QtCore/qstring.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiatoggleprovider.h b/src/plugins/platforms/windows/uiautomation/qwindowsuiatoggleprovider.h index a0df983e40..b3c79e2f3d 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiatoggleprovider.h +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiatoggleprovider.h @@ -40,7 +40,7 @@ #ifndef QWINDOWSUIATOGGLEPROVIDER_H #define QWINDOWSUIATOGGLEPROVIDER_H -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiabaseprovider.h" diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiautils.cpp b/src/plugins/platforms/windows/uiautomation/qwindowsuiautils.cpp index 89e5075dcb..657d3a0e98 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiautils.cpp +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiautils.cpp @@ -37,14 +37,14 @@ ** ****************************************************************************/ -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiautils.h" #include "qwindowscontext.h" #include "qwindowswindow.h" -#include <QtGui/QWindow> +#include <QtGui/qwindow.h> #include <QtGui/private/qhighdpiscaling_p.h> #include <cmath> diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiautils.h b/src/plugins/platforms/windows/uiautomation/qwindowsuiautils.h index 15f4d6e8ba..08476f5f8e 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiautils.h +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiautils.h @@ -40,16 +40,15 @@ #ifndef QWINDOWSUIAUTILS_H #define QWINDOWSUIAUTILS_H -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY -#include <QtCore/QString> +#include <QtCore/qstring.h> #include <QtCore/qt_windows.h> -#include <QtGui/QAccessible> -#include <QtGui/QAccessibleInterface> -#include <QtGui/QWindow> -#include <QtCore/QDebug> -#include <QtCore/QRect> +#include <QtGui/qaccessible.h> +#include <QtGui/qwindow.h> +#include <QtCore/qdebug.h> +#include <QtCore/qrect.h> #include <QtWindowsUIAutomationSupport/private/qwindowsuiawrapper_p.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiavalueprovider.cpp b/src/plugins/platforms/windows/uiautomation/qwindowsuiavalueprovider.cpp index ef7d564e22..e7c2ae0d27 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiavalueprovider.cpp +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiavalueprovider.cpp @@ -37,17 +37,16 @@ ** ****************************************************************************/ -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiavalueprovider.h" #include "qwindowsuiautils.h" #include "qwindowscontext.h" -#include <QtGui/QAccessible> -#include <QtGui/QAccessibleInterface> -#include <QtCore/QDebug> -#include <QtCore/QString> +#include <QtGui/qaccessible.h> +#include <QtCore/qdebug.h> +#include <QtCore/qstring.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/platforms/windows/uiautomation/qwindowsuiavalueprovider.h b/src/plugins/platforms/windows/uiautomation/qwindowsuiavalueprovider.h index db54fc0a46..7cb984658e 100644 --- a/src/plugins/platforms/windows/uiautomation/qwindowsuiavalueprovider.h +++ b/src/plugins/platforms/windows/uiautomation/qwindowsuiavalueprovider.h @@ -40,7 +40,7 @@ #ifndef QWINDOWSUIAVALUEPROVIDER_H #define QWINDOWSUIAVALUEPROVIDER_H -#include <QtCore/QtConfig> +#include <QtCore/qconfig.h> #ifndef QT_NO_ACCESSIBILITY #include "qwindowsuiabaseprovider.h" |