Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.9.1, 5.9.2, 5.9.3
-
macOS 10.12, mac OS 10.13
-
2b8bc44a88490d359b986ecfbf7c71d8216daa4c
Description
When moving a QQuickWidget from one window to another then it will crash when trying to resize the window it is in. In the example attached (qtbug63304.zip) it will wait 2 seconds before moving to the other top-level widget, if you try to resize that window then it crashes with the following stack:
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 org.qt-project.Qt3DRender 0x0000000109b3f54d Qt3DRender::Render::GraphicsContext::setCurrentStateSet(Qt3DRender::Render::RenderStateSet*) + 13 (graphicscontext.cpp:834) 1 org.qt-project.Qt3DRender 0x0000000109a996c7 Qt3DRender::Render::Renderer::doRender() + 343 (qscopedpointer.h:118) 2 libqtquickscene3dplugin.dylib 0x0000000109a7b03f Qt3DRender::Scene3DRenderer::render() + 1967 (scene3drenderer.cpp:305) 3 org.qt-project.QtCore 0x00000001018836ab QMetaObject::activate(QObject*, int, int, void**) + 2347 (atomic:936) 4 org.qt-project.QtQuick 0x0000000100a26601 QQuickWindowPrivate::renderSceneGraph(QSize const&) + 113 (qquickwindow.cpp:453) 5 org.qt-project.QtQuick 0x0000000100af3afd QQuickRenderControl::render() + 45 (qquickrendercontrol.cpp:344) 6 org.qt-project.QtQuickWidgets 0x00000001008fd6b6 QQuickWidgetPrivate::render(bool) + 326 (qquickwidget.cpp:290) 7 org.qt-project.QtWidgets 0x00000001025e68b8 QWidget::event(QEvent*) + 1000 (qwidget.cpp:8935) 8 org.qt-project.QtQuickWidgets 0x00000001009011ef QQuickWidget::event(QEvent*) + 799 (qquickwidget.cpp:1495) 9 org.qt-project.QtWidgets 0x00000001025ad742 QApplicationPrivate::notify_helper(QObject*, QEvent*) + 306 (qcoreapplication_p.h:104) 10 org.qt-project.QtWidgets 0x00000001025aea5f QApplication::notify(QObject*, QEvent*) + 383 (qapplication.cpp:3104) 11 org.qt-project.QtCore 0x00000001018527df QCoreApplication::notifyInternal2(QObject*, QEvent*) + 159 (qcoreapplication.cpp:1044) 12 org.qt-project.QtWidgets 0x00000001025e3f25 QWidgetPrivate::setGeometry_sys(int, int, int, int, bool) + 1861 (qscopedpointer.h:140) 13 org.qt-project.QtWidgets 0x00000001025e4270 QWidget::setGeometry(QRect const&) + 464 (qwidget.cpp:7223) 14 org.qt-project.QtWidgets 0x00000001025ca9f1 QWidgetItem::setGeometry(QRect const&) + 705 (qlayoutitem.cpp:504) 15 org.qt-project.QtWidgets 0x00000001025bea8c QBoxLayout::setGeometry(QRect const&) + 1868 (qboxlayout.cpp:808) 16 org.qt-project.QtWidgets 0x00000001025c7425 QLayoutPrivate::doResize(QSize const&) + 149 (qlayout.cpp:591) 17 org.qt-project.QtWidgets 0x00000001025ad722 QApplicationPrivate::notify_helper(QObject*, QEvent*) + 274 (qapplication.cpp:3728) 18 org.qt-project.QtWidgets 0x00000001025aea5f QApplication::notify(QObject*, QEvent*) + 383 (qapplication.cpp:3104) 19 org.qt-project.QtCore 0x00000001018527df QCoreApplication::notifyInternal2(QObject*, QEvent*) + 159 (qcoreapplication.cpp:1044) 20 org.qt-project.QtWidgets 0x0000000102607f47 QWidgetWindow::handleResizeEvent(QResizeEvent*) + 103 (qsharedpointer_impl.h:565) 21 org.qt-project.QtWidgets 0x000000010260619d QWidgetWindow::event(QEvent*) + 461 (qwidgetwindow.cpp:295) 22 org.qt-project.QtWidgets 0x00000001025ad742 QApplicationPrivate::notify_helper(QObject*, QEvent*) + 306 (qcoreapplication_p.h:104) 23 org.qt-project.QtWidgets 0x00000001025aea5f QApplication::notify(QObject*, QEvent*) + 383 (qapplication.cpp:3104) 24 org.qt-project.QtCore 0x00000001018527df QCoreApplication::notifyInternal2(QObject*, QEvent*) + 159 (qcoreapplication.cpp:1044) 25 org.qt-project.QtGui 0x0000000100f9679d QGuiApplicationPrivate::processGeometryChangeEvent(QWindowSystemInterfacePrivate::GeometryChangeEvent*) + 381 (qguiapplication.cpp:2265)
Attachments
For Gerrit Dashboard: QTBUG-63304 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
216443,2 | Don't recreate QOpenGLContext when the application is sharing contexts | 5.9.4 | qt/qtdeclarative | Status: MERGED | +2 | 0 |