summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/direct2d
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@theqtcompany.com>2015-11-09 15:13:55 +0100
committerFriedemann Kleint <Friedemann.Kleint@theqtcompany.com>2015-11-13 21:24:34 +0000
commit10d311d9d244c3a6855dd654dcf9af4bbc7044b2 (patch)
tree6208a32ba1b0e66faf10ce540f58b175c85035d9 /src/plugins/platforms/direct2d
parent26e66694fad4f3ec1afba2f2c1de3c66c6d3d7ac (diff)
Windows/Direct2D: Handle screen changes after window creation.
Call QWindowSystemInterface::handleWindowScreenChanged() in QWindowsIntegration::createPlatformWindow() should the effective screen be different from the initial screen due to the geometry. In order to avoid code duplication in the Direct2D plugin, fold the helper method createWindowData() into QWindowsIntegration::createPlatformWindow() and introduce a new virtual helper to create the actual platform window for QWindowsDirect2DIntegration to hook in. Task-number: QTBUG-48379 Change-Id: I49c7a50a12245691414ab49bffe802239a87d2d6 Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Diffstat (limited to 'src/plugins/platforms/direct2d')
-rw-r--r--src/plugins/platforms/direct2d/qwindowsdirect2dintegration.cpp11
-rw-r--r--src/plugins/platforms/direct2d/qwindowsdirect2dintegration.h4
2 files changed, 8 insertions, 7 deletions
diff --git a/src/plugins/platforms/direct2d/qwindowsdirect2dintegration.cpp b/src/plugins/platforms/direct2d/qwindowsdirect2dintegration.cpp
index 20dde476c1..b86dfa3546 100644
--- a/src/plugins/platforms/direct2d/qwindowsdirect2dintegration.cpp
+++ b/src/plugins/platforms/direct2d/qwindowsdirect2dintegration.cpp
@@ -219,12 +219,11 @@ QWindowsDirect2DIntegration::~QWindowsDirect2DIntegration()
return static_cast<QWindowsDirect2DIntegration *>(QWindowsIntegration::instance());
}
- QPlatformWindow *QWindowsDirect2DIntegration::createPlatformWindow(QWindow *window) const
- {
- QWindowsWindowData data = createWindowData(window);
- return data.hwnd ? new QWindowsDirect2DWindow(window, data)
- : Q_NULLPTR;
- }
+
+QWindowsWindow *QWindowsDirect2DIntegration::createPlatformWindowHelper(QWindow *window, const QWindowsWindowData &data) const
+{
+ return new QWindowsDirect2DWindow(window, data);
+}
QPlatformNativeInterface *QWindowsDirect2DIntegration::nativeInterface() const
{
diff --git a/src/plugins/platforms/direct2d/qwindowsdirect2dintegration.h b/src/plugins/platforms/direct2d/qwindowsdirect2dintegration.h
index 6b7b3fbea2..64042cab0a 100644
--- a/src/plugins/platforms/direct2d/qwindowsdirect2dintegration.h
+++ b/src/plugins/platforms/direct2d/qwindowsdirect2dintegration.h
@@ -52,7 +52,6 @@ public:
static QWindowsDirect2DIntegration *instance();
- QPlatformWindow *createPlatformWindow(QWindow *window) const Q_DECL_OVERRIDE;
QPlatformNativeInterface *nativeInterface() const Q_DECL_OVERRIDE;
QPlatformPixmap *createPlatformPixmap(QPlatformPixmap::PixelType type) const Q_DECL_OVERRIDE;
QPlatformBackingStore *createPlatformBackingStore(QWindow *window) const Q_DECL_OVERRIDE;
@@ -60,6 +59,9 @@ public:
QWindowsDirect2DContext *direct2DContext() const;
+protected:
+ QWindowsWindow *createPlatformWindowHelper(QWindow *window, const QWindowsWindowData &) const Q_DECL_OVERRIDE;
+
private:
explicit QWindowsDirect2DIntegration(const QStringList &paramList);
bool init();