From e79f008ae5f8829fab6ec8ffa09850e38b5a700f Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Wed, 6 Aug 2014 12:29:00 +0200 Subject: 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 --- src/widgets/kernel/qopenglwidget.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/widgets') 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(); -- cgit v1.2.3