QGLWidget and re-parenting
authorTimur Pocheptsov <Timur.Pocheptsov@digia.com>
Mon, 2 Mar 2015 14:52:19 +0000 (15:52 +0100)
committerTimur Pocheptsov <Timur.Pocheptsov@digia.com>
Mon, 2 Mar 2015 16:46:22 +0000 (16:46 +0000)
commit0806c624bb3e29c0ca852def079f21bc56174be6
tree3581476d7d3b48c3a0fddb74d6931dca3d5afa13
parentffb5ece8da10fa6d3ebf73a020ddd2a1dcf48a54
QGLWidget and re-parenting

On OS X we have QWidgetPrivate::glWidgets list to track all child gl-widgets
and this propagates though all the widget's tree, starting from QGLWidget and up to the
top-level window ('isWindow'). It can happen, that some of widgets in a chain is becoming
a window (but still has a parent) - this results in QGLWidget's destructor failing to remove
'this' from one of ancestors (since it stops on the first 'isWindow' ancestor).
Modify QWidgetPrivate::setParent_sys that it does NOT add glWidgets into the parent's
glWidgets, if this widget isWindow itself.

Change-Id: I4bf4a927a4e43537355fdcdef465638c91e9f956
Task-number: QTBUG-20652
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
src/gui/kernel/qwidget_mac.mm