diff options
Diffstat (limited to 'src/widgets/kernel/qwidgetwindow.cpp')
-rw-r--r-- | src/widgets/kernel/qwidgetwindow.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp index c3f570ce4f..e74243203a 100644 --- a/src/widgets/kernel/qwidgetwindow.cpp +++ b/src/widgets/kernel/qwidgetwindow.cpp @@ -243,10 +243,14 @@ bool QWidgetWindow::event(QEvent *event) } switch (event->type()) { - case QEvent::Close: + case QEvent::Close: { + // The widget might be deleted in the close event handler. + QPointer<QObject> guard = this; handleCloseEvent(static_cast<QCloseEvent *>(event)); - QWindow::event(event); + if (guard) + QWindow::event(event); return true; + } case QEvent::Enter: case QEvent::Leave: |