summaryrefslogtreecommitdiffstats
path: root/src/widgets/kernel/qopenglwidget.cpp
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@digia.com>2014-08-06 12:29:00 +0200
committerLaszlo Agocs <laszlo.agocs@digia.com>2014-08-07 09:03:37 +0200
commite79f008ae5f8829fab6ec8ffa09850e38b5a700f (patch)
tree982937d5b49c3c191913fc5077ec938efef285cb /src/widgets/kernel/qopenglwidget.cpp
parent1b1dd22486155c21fc0d10bb07b7bbb4324c2bf9 (diff)
Avoid crashing in QOpenGLWidget::metrics
When creating child widgets in the derived class' constructor, the screen cannot be retrieved via window() since it still returns null. Handle this case properly. Change-Id: I65bf7f9c338ce8a3ddab8ad7886cfe2f1f253c82 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Diffstat (limited to 'src/widgets/kernel/qopenglwidget.cpp')
-rw-r--r--src/widgets/kernel/qopenglwidget.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/widgets/kernel/qopenglwidget.cpp b/src/widgets/kernel/qopenglwidget.cpp
index 8d2e1e06e6..33e036ee64 100644
--- a/src/widgets/kernel/qopenglwidget.cpp
+++ b/src/widgets/kernel/qopenglwidget.cpp
@@ -867,7 +867,8 @@ int QOpenGLWidget::metric(QPaintDevice::PaintDeviceMetric metric) const
if (d->inBackingStorePaint)
return QWidget::metric(metric);
- QScreen *screen = window()->windowHandle()->screen();
+ QWidget *tlw = window();
+ QScreen *screen = tlw && tlw->windowHandle() ? tlw->windowHandle()->screen() : 0;
if (!screen && QGuiApplication::primaryScreen())
screen = QGuiApplication::primaryScreen();