diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2011-07-26 10:30:56 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2011-07-26 10:33:54 +0200 |
commit | 32cec9f3bab992a2fd749bf386a9b8106b89b1fe (patch) | |
tree | 5cd24ffa91fbb731841afee16b20975c5a590626 /src/widgets | |
parent | 97c659a5aa6092b70751950aa6a6641295c2539d (diff) |
Retrieve QPlatformScreen from top level when querying widget metrics.
Check for 0 and use primary screen as default.
Change-Id: Ib4d0d3f507e7fb17687f5e126b49f98cfdbead6c
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-on: http://codereview.qt.nokia.com/2166
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Diffstat (limited to 'src/widgets')
-rw-r--r-- | src/widgets/kernel/qwidget_qpa.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/widgets/kernel/qwidget_qpa.cpp b/src/widgets/kernel/qwidget_qpa.cpp index b8f1f4ebc7..507cb11fff 100644 --- a/src/widgets/kernel/qwidget_qpa.cpp +++ b/src/widgets/kernel/qwidget_qpa.cpp @@ -53,6 +53,8 @@ #include "QtGui/private/qwindow_p.h" #include <QtGui/QPlatformCursor> +#include <QtGui/QGuiApplication> +#include <QtGui/QScreen> QT_BEGIN_NAMESPACE @@ -733,7 +735,13 @@ int QWidget::metric(PaintDeviceMetric m) const { Q_D(const QWidget); - QPlatformScreen *screen = QPlatformScreen::platformScreenForWindow(windowHandle()); + QPlatformScreen *screen = 0; + if (QWidget *topLevel = window()) + if (QWindow *topLevelWindow = topLevel->windowHandle()) + screen = QPlatformScreen::platformScreenForWindow(topLevelWindow); + if (!screen && QGuiApplication::primaryScreen()) + screen = QGuiApplication::primaryScreen()->handle(); + if (!screen) { if (m == PdmDpiX || m == PdmDpiY) return 72; |