diff options
author | Laszlo Agocs <laszlo.agocs@digia.com> | 2013-09-13 16:34:48 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-20 12:06:03 +0200 |
commit | 7e2b238c507ee2fdea26f2b57512f337de2c5f85 (patch) | |
tree | 3fa598d19f89864321a0484e6c572ae39aea62df /src/widgets/kernel/qwidget_qpa.cpp | |
parent | d18ccbb5be23eaea5eb5f1af2ae0fba334ab21d7 (diff) |
Add a WindowManagement capability to QPlatformIntegration
To be set to false by eglfs and similar platforms where no real window
management is provided.
When this capability is not set, some of the changes done for
QTBUG-26903 will be disabled, allowing dialogs to show up at their
QDialog-chosen place on platforms where no WM is present and so
windows are never repositioned by the system.
Change-Id: If1dac3cd11f2a856913a51277431fe3ec644b719
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Diffstat (limited to 'src/widgets/kernel/qwidget_qpa.cpp')
-rw-r--r-- | src/widgets/kernel/qwidget_qpa.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/widgets/kernel/qwidget_qpa.cpp b/src/widgets/kernel/qwidget_qpa.cpp index a06283be02..ae8a0b25b9 100644 --- a/src/widgets/kernel/qwidget_qpa.cpp +++ b/src/widgets/kernel/qwidget_qpa.cpp @@ -110,7 +110,8 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO win->setFlags(data.window_flags); fixPosIncludesFrame(); - if (q->testAttribute(Qt::WA_Moved)) + if (q->testAttribute(Qt::WA_Moved) + || !QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::WindowManagement)) win->setGeometry(q->geometry()); else win->resize(q->size()); @@ -530,7 +531,8 @@ void QWidgetPrivate::show_sys() } const QRect windowRect = window->geometry(); if (windowRect != geomRect) { - if (q->testAttribute(Qt::WA_Moved)) + if (q->testAttribute(Qt::WA_Moved) + || !QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::WindowManagement)) window->setGeometry(geomRect); else window->resize(geomRect.size()); |