summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>2011-07-26 10:30:56 +0200
committerFriedemann Kleint <Friedemann.Kleint@nokia.com>2011-07-26 10:33:54 +0200
commit32cec9f3bab992a2fd749bf386a9b8106b89b1fe (patch)
tree5cd24ffa91fbb731841afee16b20975c5a590626 /src
parent97c659a5aa6092b70751950aa6a6641295c2539d (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')
-rw-r--r--src/widgets/kernel/qwidget_qpa.cpp10
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;