diff options
Diffstat (limited to 'src/widgets/kernel/qlayout.cpp')
-rw-r--r-- | src/widgets/kernel/qlayout.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/widgets/kernel/qlayout.cpp b/src/widgets/kernel/qlayout.cpp index 044176d141..2867bd9fb1 100644 --- a/src/widgets/kernel/qlayout.cpp +++ b/src/widgets/kernel/qlayout.cpp @@ -570,12 +570,14 @@ void QLayout::widgetEvent(QEvent *e) case QEvent::ChildRemoved: { QChildEvent *c = (QChildEvent *)e; - if (c->child()->isWidgetType()) { + QObject *child = c->child(); + QObjectPrivate *op = QObjectPrivate::get(child); + if (op->wasWidget) { #if QT_CONFIG(menubar) - if (c->child() == d->menubar) + if (child == d->menubar) d->menubar = nullptr; #endif - removeWidgetRecursively(this, c->child()); + removeWidgetRecursively(this, child); } } break; |