summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/kernel/qplatformwindow_p.h5
-rw-r--r--src/plugins/platforms/windows/qwindowsnativeinterface.cpp31
-rw-r--r--src/plugins/platforms/windows/qwindowsnativeinterface.h5
-rw-r--r--src/plugins/platforms/windows/qwindowswindow.cpp10
-rw-r--r--src/plugins/platforms/windows/qwindowswindow.h7
-rw-r--r--src/widgets/dialogs/qwizard_win.cpp12
6 files changed, 26 insertions, 44 deletions
diff --git a/src/gui/kernel/qplatformwindow_p.h b/src/gui/kernel/qplatformwindow_p.h
index fdcb62b364..d69e7a5749 100644
--- a/src/gui/kernel/qplatformwindow_p.h
+++ b/src/gui/kernel/qplatformwindow_p.h
@@ -57,6 +57,8 @@
QT_BEGIN_NAMESPACE
+class QMargins;
+
class QPlatformWindowPrivate
{
public:
@@ -116,6 +118,9 @@ struct Q_GUI_EXPORT QWindowsWindow
virtual void setHasBorderInFullScreen(bool border) = 0;
virtual bool hasBorderInFullScreen() const = 0;
+
+ virtual QMargins customMargins() const = 0;
+ virtual void setCustomMargins(const QMargins &margins) = 0;
};
#endif // Q_OS_WIN
diff --git a/src/plugins/platforms/windows/qwindowsnativeinterface.cpp b/src/plugins/platforms/windows/qwindowsnativeinterface.cpp
index a62ce1323f..103db19a69 100644
--- a/src/plugins/platforms/windows/qwindowsnativeinterface.cpp
+++ b/src/plugins/platforms/windows/qwindowsnativeinterface.cpp
@@ -144,37 +144,6 @@ void *QWindowsNativeInterface::nativeResourceForCursor(const QByteArray &resourc
}
#endif // !QT_NO_CURSOR
-static const char customMarginPropertyC[] = "WindowsCustomMargins";
-
-QVariant QWindowsNativeInterface::windowProperty(QPlatformWindow *window, const QString &name) const
-{
- auto *platformWindow = static_cast<QWindowsWindow *>(window);
- if (name == QLatin1String(customMarginPropertyC))
- return QVariant::fromValue(platformWindow->customMargins());
- return QVariant();
-}
-
-QVariant QWindowsNativeInterface::windowProperty(QPlatformWindow *window, const QString &name, const QVariant &defaultValue) const
-{
- const QVariant result = windowProperty(window, name);
- return result.isValid() ? result : defaultValue;
-}
-
-void QWindowsNativeInterface::setWindowProperty(QPlatformWindow *window, const QString &name, const QVariant &value)
-{
- auto *platformWindow = static_cast<QWindowsWindow *>(window);
- if (name == QLatin1String(customMarginPropertyC))
- platformWindow->setCustomMargins(qvariant_cast<QMargins>(value));
-}
-
-QVariantMap QWindowsNativeInterface::windowProperties(QPlatformWindow *window) const
-{
- QVariantMap result;
- const QString customMarginProperty = QLatin1String(customMarginPropertyC);
- result.insert(customMarginProperty, windowProperty(window, customMarginProperty));
- return result;
-}
-
void *QWindowsNativeInterface::nativeResourceForIntegration(const QByteArray &resource)
{
#ifdef QT_NO_OPENGL
diff --git a/src/plugins/platforms/windows/qwindowsnativeinterface.h b/src/plugins/platforms/windows/qwindowsnativeinterface.h
index 95b6bf847c..6b3740a17b 100644
--- a/src/plugins/platforms/windows/qwindowsnativeinterface.h
+++ b/src/plugins/platforms/windows/qwindowsnativeinterface.h
@@ -98,11 +98,6 @@ public:
QVariant gpu() const;
QVariant gpuList() const;
- QVariantMap windowProperties(QPlatformWindow *window) const override;
- QVariant windowProperty(QPlatformWindow *window, const QString &name) const override;
- QVariant windowProperty(QPlatformWindow *window, const QString &name, const QVariant &defaultValue) const override;
- void setWindowProperty(QPlatformWindow *window, const QString &name, const QVariant &value) override;
-
Q_SIGNALS:
void darkModeChanged(bool);
};
diff --git a/src/plugins/platforms/windows/qwindowswindow.cpp b/src/plugins/platforms/windows/qwindowswindow.cpp
index 9668f58112..2da4251179 100644
--- a/src/plugins/platforms/windows/qwindowswindow.cpp
+++ b/src/plugins/platforms/windows/qwindowswindow.cpp
@@ -1193,6 +1193,16 @@ bool QWindowsBaseWindow::hasBorderInFullScreen() const
return false;
}
+QMargins QWindowsBaseWindow::customMargins() const
+{
+ return {};
+}
+
+void QWindowsBaseWindow::setCustomMargins(const QMargins &)
+{
+ Q_UNIMPLEMENTED();
+}
+
/*!
\class QWindowsDesktopWindow
\brief Window wrapping GetDesktopWindow not allowing any manipulation.
diff --git a/src/plugins/platforms/windows/qwindowswindow.h b/src/plugins/platforms/windows/qwindowswindow.h
index 6c6c86ef47..beed3e17df 100644
--- a/src/plugins/platforms/windows/qwindowswindow.h
+++ b/src/plugins/platforms/windows/qwindowswindow.h
@@ -144,6 +144,9 @@ public:
void setHasBorderInFullScreen(bool border) override;
bool hasBorderInFullScreen() const override;
+ QMargins customMargins() const override;
+ void setCustomMargins(const QMargins &margins) override;
+
using QPlatformWindow::screenForGeometry;
virtual HWND handle() const = 0;
@@ -304,8 +307,8 @@ public:
QWindowsMenuBar *menuBar() const;
void setMenuBar(QWindowsMenuBar *mb);
- QMargins customMargins() const { return m_data.customMargins; }
- void setCustomMargins(const QMargins &m);
+ QMargins customMargins() const override { return m_data.customMargins; }
+ void setCustomMargins(const QMargins &m) override;
void setStyle(unsigned s) const;
void setExStyle(unsigned s) const;
diff --git a/src/widgets/dialogs/qwizard_win.cpp b/src/widgets/dialogs/qwizard_win.cpp
index 5a666b542b..8edbe14150 100644
--- a/src/widgets/dialogs/qwizard_win.cpp
+++ b/src/widgets/dialogs/qwizard_win.cpp
@@ -43,7 +43,8 @@
#include "qwizard_win_p.h"
#include <private/qapplication_p.h>
-#include <qpa/qplatformnativeinterface.h>
+#include <qpa/qplatformwindow.h>
+#include <qpa/qplatformwindow_p.h>
#include "qwizard.h"
#include "qpaintengine.h"
#include "qapplication.h"
@@ -166,6 +167,8 @@ QVistaHelper::~QVistaHelper()
void QVistaHelper::updateCustomMargins(bool vistaMargins)
{
+ using namespace QPlatformInterface::Private;
+
if (QWindow *window = wizard->windowHandle()) {
// Reduce top frame to zero since we paint it ourselves. Use
// device pixel to avoid rounding errors.
@@ -176,11 +179,8 @@ void QVistaHelper::updateCustomMargins(bool vistaMargins)
// The dynamic property takes effect when creating the platform window.
window->setProperty("_q_windowsCustomMargins", customMarginsV);
// If a platform window exists, change via native interface.
- if (QPlatformWindow *platformWindow = window->handle()) {
- QGuiApplication::platformNativeInterface()->
- setWindowProperty(platformWindow, QStringLiteral("WindowsCustomMargins"),
- customMarginsV);
- }
+ if (auto platformWindow = dynamic_cast<QWindowsWindow *>(window->handle()))
+ platformWindow->setCustomMargins(customMarginsDp);
}
}